正确命令是 composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/(末尾斜杠不可少),需配合 clear-cache 并验证输出与 -vvv 实际请求。

composer config -g repo.packagist 命令必须写对
换源失败,八成卡在这条命令的拼写和参数上。它不是 repos.packagist,也不是 repo.packagist.org,更不能漏掉中间的 composer 类型声明。
-
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/—— 正确(注意末尾斜杠/) -
composer config -g repositories.packagist—— 已弃用,Composer 2.5+ 不识别 -
composer config -g repo.packagist https://...—— 缺少composer类型,会创建无效仓库 -
https://mirrors.cloud.tencent.com/composer(无尾部/)—— 部分 Composer 2.2+ 版本报Invalid repository type
换完不生效?先清缓存,再看真实请求源
配置写进去了,但 composer install 还是慢、还是连 packagist.org,大概率是缓存没清,或者被项目级配置覆盖了。
- 必须执行
composer clear-cache,否则 Composer 继续用旧元数据,镜像形同虚设 - 验证是否真生效:运行
composer config -g repo.packagist,输出里要有"url": "https://mirrors.cloud.tencent.com/composer/" - 观察实际请求:加
-vvv执行composer show laravel/framework --no-ansi -vvv | grep mirrors,看到域名才作数 - 检查项目级覆盖:进项目根目录,运行
composer config repos.packagist,若有输出,说明composer.json里写了repositories,优先级更高
临时切源只对单次命令有效,别指望它解决日常问题
-r 参数适合救急,但不能替代全局配置。CI/CD 中反复执行 install,没设全局源等于白配。
- 临时指定腾讯云源:
composer create-project laravel/laravel demo -r https://mirrors.cloud.tencent.com/composer/ -
-r仅对当前命令生效,不会写入任何配置文件 - 不支持同时指定多个源;也不能用于
composer require后续自动拉取依赖的场景 - 环境变量
COMPOSER_REPO_PACKAGIST在新版 Composer 中已基本失效,不要依赖它
镜像地址末尾斜杠不能少,华为云/腾讯云都严格校验
所有国内镜像源 URL 必须以 / 结尾,否则 Composer 会拼出错误路径,比如把 packages.json 请求成 packages.json 前面少个 /,直接报 404。
- ✅ 正确:
https://mirrors.cloud.tencent.com/composer/ - ❌ 错误:
https://mirrors.cloud.tencent.com/composer - 阿里云相对宽松,但为了一致性,统一加斜杠最稳妥
- 中科大、华为云、腾讯云镜像均严格校验该格式,漏掉就失败
最容易被忽略的是项目根目录下 composer.json 的 repositories 字段——它会彻底屏蔽全局配置,哪怕你 config -g 写得再对也没用。改完记得 clear-cache,再 config -g repo.packagist 看一眼,最后用 -vvv 确认真实请求域名。










