composer config -g repo.packagist 用于全局设置 Packagist 源,本质修改用户级 config.json 中的 repo.packagist 配置项;需确保 URL 合法且含 https:// 协议,配置错误将被静默忽略。

composer config -g repo.packagist
全局设置 Composer 源,本质是改用户级配置文件里的 repo.packagist 配置项。执行这条命令就能直接覆盖默认 Packagist 地址:
composer config -g repo.packagist '{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}'- 注意:
url值必须是合法的 Composer 镜像地址,且带协议(https://),少个斜杠或写成http可能导致后续require失败 - 执行后,所有项目(除非显式覆盖)都会走这个源,不需要进每个项目跑
config
为什么改了不生效?检查 config -g 的实际位置
Composer 全局配置写在用户目录下的 auth.json 和 config.json 里,路径取决于系统:
- linux/macos:
~/.composer/config.json - windows:
%USERPROFILE%AppDataRoamingComposerconfig.json - 如果手动编辑过这个文件,但格式错了一逗号或引号没闭合,
composer会静默忽略整个配置段——建议用composer config -g --list确认是否真写进去了 - 某些旧版 Composer(repo.packagist 覆盖,得降级用
packagist.org别名方式,但现在主流版本都 OK
项目内 config 优先级高于全局,但可以强制跳过
如果某个项目根目录有 composer.json 且里面写了 "repositories",它默认会屏蔽全局源。想让项目也走全局镜像,有两个办法:
- 删掉项目
composer.json里的repositories字段(最干净) - 或者运行
composer config --unset repositories清空当前项目的自定义源 - 不想动项目配置?加
--no-plugins或临时用COMPOSER_HOME指向空目录也能绕过,但属于非常规操作,容易引发插件缺失问题
国内常用镜像地址与验证方式
阿里云、腾讯云、华为云都有稳定镜像,但 URL 格式和证书行为略有差异:
- 阿里云:
https://mirrors.aliyun.com/composer/(推荐,响应快,兼容性好) - 腾讯云:
https://mirrors.cloud.tencent.com/composer/(需确认是否启用 SNI,某些老 OpenSSL 会握手失败) - 验证是否生效:运行
composer show -p | head -5,看返回包列表的域名是不是你设的镜像地址;或者抓包看GET请求发到了哪个域名
别忘了定期更新镜像——有些镜像同步延迟几小时,遇到新发布的包装不上,先 composer clear-cache 再试,不是所有问题都出在源地址上。