直接执行composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/即可全局生效,因该命令严格满足键名(repo.packagist)、type值(composer)、URL(HTTPS且末尾带/)三要素,缺一则静默失效;验证需用composer config -g repo.packagist输出完整JSON,并排除项目级repositories覆盖、代理或缓存干扰。

直接执行 composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ 就能全局生效,99% 的国内 PHP 开发者用这个就够了;但错一个字符(比如少斜杠、写错键名)就完全不生效,且没有任何报错提示。
为什么 composer config -g repo.packagist 是唯一推荐的全局写法
Composer 2.5+ 强制校验键名和 type 值,旧写法如 repos.packagist 或 repositories.packagist 会被静默忽略。
-
repo.packagist是固定键名,不能加 s,不能带 .org,也不能写成 repositories -
composer是必须显式写出的 type 值,不是可选参数,漏掉会导致配置无效 -
https://mirrors.cloud.tencent.com/composer/末尾的/必须保留,否则部分版本会返回 404 或Invalid repository type - 执行后立刻验证:
composer config -g repo.packagist应输出完整 JSON:{"type":"composer","url":"https://mirrors.cloud.tencent.com/composer/"}
配完还是走 packagist.org?先查这三处
镜像本身极少出问题,失效几乎都来自本地环境干扰或优先级覆盖。
- 运行
composer config repos.packagist(不加-g),进项目根目录执行——如果有输出,说明项目级composer.json里的repositories字段覆盖了全局配置 - 检查是否残留代理:
echo $http_proxy(Linux/macOS)或set http_proxy(Windows),有值就清掉;也可用composer config -g --unset http-proxy - 清除本地元数据缓存:
composer clear-cache,否则 Composer 仍可能读取旧的p2/索引,行为与新配置不一致
-r 参数只对部分命令有效,别在 create-project 里硬套
-r 是调试和 CI 场景最干净的方式,但它有明确限制,不是万能开关。
- 支持:
composer install、composer update、composer show - 不支持:
composer create-project—— 它根本不认-r,必须提前用config -g临时设好再跑 - 等效替代:
composer create-project laravel/laravel demo --repository=https://mirrors.cloud.tencent.com/composer/ - 注意:
-r会**完全忽略所有已配置源**(包括项目级和全局),所以它测得快,但不代表你日常开发的真实链路
腾讯云镜像不加速 ZIP 下载,卡在 “Downloading” 别怪源
腾讯云镜像只代理元数据(packages.json、p2/ 索引),真正的 ZIP 包仍从 GitHub/GitLab 直链下载。如果你看到 Downloading laravel/framework 卡住几十秒,问题不在镜像配置。
- 先确认是否真卡在下载阶段:加
-vvv参数看日志,如果卡在Loading composer repositories...,才是镜像问题;卡在Downloading...,就得查 GitHub 访问、DNS 或企业防火墙 - 部分地区(教育网、某些云主机)对
mirrors.cloud.tencent.com解析不稳定,可临时换阿里云源:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 不要开
verify-peer=false或关secure-http,腾讯云证书是有效的,开了反而可能触发新版 Composer 拒绝加载











