推荐用 composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ 全局配置镜像源,务必带尾部斜杠;需检查并清除代理设置,勿禁用 HTTPS 校验。

composer config 命令改全局源,别直接改 config.json
改镜像源最稳妥的方式是用 composer config 命令,不是手动编辑 composer.json 或 config.json。手动改容易漏掉用户级配置位置,或被后续 composer update 覆盖。
-
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/—— 全局生效(推荐),影响所有项目 -
composer config repo.packagist composer https://mirrors.cloud.tencent.com/composer/—— 仅当前项目,不加-g - 执行后可在
~/.composer/config.json(Linux/macOS)或%APPDATA%\Composer\config.json(Windows)里验证是否写入repo.packagist字段
腾讯云镜像地址必须带尾部斜杠,否则会 404
腾讯云镜像的正确地址是 https://mirrors.cloud.tencent.com/composer/,结尾的 / 缺不得。少它一个字符,composer install 时会卡在“Resolving packages…”然后报 Connection refused 或 404 Not Found —— 实际是重定向失败,Nginx 拒绝了无尾缀的路径。
- 错的:
https://mirrors.cloud.tencent.com/composer(无斜杠) - 对的:
https://mirrors.cloud.tencent.com/composer/(有斜杠) - 可以用
curl -I https://mirrors.cloud.tencent.com/composer/看返回是否为200 OK
国内网络下仍提示 “Could not fetch”,检查是否被 proxy 干扰
即使换了腾讯镜像,某些环境仍会因残留代理设置导致请求发到国外源。常见于公司网络、Clash/Shadowrocket 全局代理未关闭、或本地 http_proxy 环境变量未清空。
- 运行
env | grep -i proxy(Linux/macOS)或set proxy(Windows cmd)确认无http_proxy/https_proxy - 临时清除:
unset http_proxy https_proxy(Linux/macOS)或set http_proxy=(Windows) - Composer 自身也支持
composer config -g -u http-proxy清除代理配置 - 如果用了
composer create-project卡住,大概率是代理没关干净
verify-peer=false 不要轻易开,腾讯镜像本身支持 HTTPS 验证
有些教程教人加 "secure-http": false 或设 verify-peer=false 来绕过证书错误,但腾讯云镜像用的是有效 TLS 证书,根本不需要关校验。开了反而让 Composer 降级走 HTTP,可能被中间人劫持,或在新版 Composer(2.5+)中直接报错拒绝加载。
- 腾讯镜像地址是 HTTPS,且证书由 TrustAsia 签发,主流系统和 OpenSSL 版本都信任
- 若提示
SSL certificate problem,优先查系统 CA 证书是否过期(如 Alpine 容器缺ca-certificates包) - 不要碰
composer config -g secure-http false,这是退化方案,不是解决镜像问题的正路
镜像配置本身很简单,真正耗时间的往往是网络层干扰和路径细节:斜杠、代理、证书链、配置作用域——这些地方一错,composer install 就会静默卡住或报模糊错误。










