composer config --global repo.packagist 是修改全局镜像源最轻量无副作用的方式,直接生效;手动编辑 config.json 易出错,环境变量仅旧版支持且不推荐。

composer config 命令直接改全局源
改镜像源本质就是改 Composer 的全局配置项 repo.packagist,composer config 是最轻量、无副作用的方式,不需要动 JSON 文件或清缓存——改完立刻生效。
常见错误是手动编辑 ~/.composer/config.json,容易格式出错或覆盖其他配置;还有人用 composer global config,其实它和 composer config --global 等价,但后者更明确。
- 切阿里云源:
composer config --global repo.packagist composer https://mirrors.aliyun.com/composer/ - 切华为云源:
composer config --global repo.packagist composer https://mirrors.huaweicloud.com/repository/php/ - 恢复官方源:
composer config --global --unset repo.packagist
为什么不能只改 require 时的 -r 参数?
composer require -r 或 composer create-project -r 虽然能临时指定源,但只影响当次命令,不解决日常 composer install 或 composer update 仍走默认源的问题。尤其 CI/CD 中反复执行 install,没设全局源等于白配。
另一个坑是误以为 COMPOSER_REPO_PACKAGIST 环境变量能替代配置——它只在部分旧版本(
镜像源地址末尾斜杠不能少
所有国内镜像源 URL 必须以 / 结尾,否则 Composer 会拼出错误路径,比如请求 https://mirrors.aliyun.com/composer/packages.json 变成 https://mirrors.aliyun.com/composerpackages.json(少了个 /),直接报 404。
华为云和腾讯云镜像都严格校验这个;阿里云相对宽松,但为了一致性,统一加斜杠最稳妥。
- ✅ 正确:
https://mirrors.aliyun.com/composer/ - ❌ 错误:
https://mirrors.aliyun.com/composer
切换后记得验证是否生效
改完别急着跑 install,先用 composer config --global repo.packagist 查一眼值对不对;再跑 composer show -p | head -3,看第一行输出的源域名是不是你刚设的。
最容易被忽略的是:某些项目根目录下有 composer.json 自带 repositories 字段,会优先级高于全局配置。如果发现 install 还是走慢源,就检查项目级配置有没有硬编码 "packagist.org" 或空 repositories 数组。











