确认镜像是否生效需先清缓存(composer clear-cache),再通过composer show或-vvv查看请求URL是否含mirrors.cloud.tencent.com,若显示Repo packagist.org is default则镜像未加载,常见原因为键名错误、项目级配置覆盖或Composer版本过低。

确认当前镜像是否真的生效
很多人执行了命令就以为搞定了,结果 composer install 还是慢得像在等 DNS 超时。真正判断镜像有没有接管,不能只看配置写没写进去,得看 Composer 实际请求发到了哪。
- 先清缓存:
composer clear-cache—— 不做这步,Composer 会继续用旧的元数据,镜像形同虚设 - 再验证行为:
composer show laravel/framework 11.* --no-ansi | head -n 5,观察输出里 URL 是否含mirrors.cloud.tencent.com;或者加-vvv看完整请求日志 - 如果看到
Repo packagist.org is default(来自composer diagnose),说明镜像完全没被加载,大概率是键名写错、被项目级配置覆盖,或 Composer 版本太老
全局配置腾讯云镜像的正确命令
错一个字符就白配——这不是夸张。Composer 2.5+ 对 repo.packagist 的键名、composer 类型声明、末尾斜杠都敏感,拼错就静默失败。
- 必须用这个格式:
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ -
repo.packagist是固定键名,不是repos.packagist,也不是repository.packagist -
composer是 type 值,不能省;URL 末尾的/必须保留,否则部分版本返回 404 或报Invalid repository type - 验证是否写入成功:
composer config -g repo.packagist,应输出{"type": "composer", "url": "https://mirrors.cloud.tencent.com/composer/"}
项目级配置 vs 全局配置,谁说了算?
Composer 合并配置的优先级是:项目级 > 用户级(-g) > 默认。哪怕你全局配好了,只要项目 composer.json 里有 "repositories" 字段,它就会直接跳过你的腾讯云镜像。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 检查项目是否覆盖:
composer config repos.packagist(不带-g),如果有输出,说明项目自己写了镜像或干脆禁用了 packagist - 想临时绕过所有配置(包括项目级),用
-r参数:composer install -r https://mirrors.cloud.tencent.com/composer/ - 注意:
composer create-project不支持-r,得先配好全局或项目级配置再运行
镜像连不上?别急着重配,先查网络层
腾讯云镜像本身同步稳定,但国内不少环境卡在 DNS、HTTPS 握手或防火墙拦截上。这时候反复改 config 没用。
- 第一步:
ping mirrors.cloud.tencent.com,不通就不用往下试了 - 第二步:
curl -I https://mirrors.cloud.tencent.com/composer/,看是否返回200;若报Could not resolve host或证书错误,说明是本地网络策略问题 - 教育网、某些企业内网常屏蔽镜像域名,可临时切阿里云:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - CI 场景建议用
-r参数单次指定,避免污染环境配置,也更容易排查
最常被忽略的是缓存和项目级配置的叠加效应——你以为改了全局,其实项目自己锁死了源;你以为清了缓存,其实 diagnose 还在报默认源,那八成是键名拼错了。










