正确命令必须带-g:composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/,漏-g仅改当前项目、键名错(如repos.packagist)、缺末尾/或漏type值composer均导致静默失效,且需执行clear-cache验证生效。

composer config -g 命令漏掉 -g 参数
执行 composer config repo.packagist composer https://mirrors.cloud.tencent.com/composer/ 看似成功,但没加 -g 就只改当前项目目录下的 composer.json,换个项目或进新目录就失效。这不是“没生效”,是根本没动全局配置。
正确命令必须带 -g(或等价的 --global):composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/
-
repo.packagist是固定键名,不能写成repos.packagist或packagist.org,否则 Composer 2.2+ 会静默忽略 - URL 末尾必须有
/,写成https://mirrors.cloud.tencent.com/composer会导致拼出错误路径/composerpackages.json,报 404 - type 值
composer不能省略,漏掉它会 fallback 到默认官方源
换源后 composer install 还卡在 downloading
最常被跳过的一步:composer clear-cache 没执行。缓存里还存着旧的 packages.json 和元数据,Composer 会优先读缓存,哪怕全局配置已改,它仍试图从旧地址拉校验信息,结果卡在 DNS 解析或 TLS 握手。
- 立刻运行
composer clear-cache,清掉本地所有元数据缓存 - 验证是否写入:运行
composer config -g repo.packagist.url,输出应为https://mirrors.cloud.tencent.com/composer/ - 检查项目级是否覆盖:运行
grep -A5 repositories composer.json,确认没硬编码"url": "https://packagist.org"—— 项目级repositories字段优先级高于全局,一旦存在,repo.packagist全局设置就完全被忽略
腾讯云镜像源 vs 阿里云镜像源怎么选
没有绝对“更快”的镜像,只有“对你出口 IP 更快”的镜像。华南、华东用户常发现腾讯云延迟更低,尤其部署在腾讯云 CVM 上;阿里云在全国骨干网覆盖更均衡;华为云在部分政企内网或特定出口表现更好。
- CI/CD 流水线推荐腾讯云源:
https://mirrors.cloud.tencent.com/composer/,fallback 更友好,能降低因同步延迟导致构建失败的概率 - 冷门包(如
phpstan/phpstan-deprecation-rules)可能未同步,不是你命令错了,是镜像本身就没这份数据;可临时切回官方源测试:composer config -g repo.packagist composer https://packagist.org - 镜像本质是定时同步,不是实时代理,新发布包通常 2 小时内同步完成,不用急着换源
laravel/installer 或 create-project 依然慢
这类命令会先拉骨架元数据,而骨架元数据仍可能从官方源读取 —— 全局镜像配置对它们不自动生效。
- 提前预置镜像:运行
composer global require laravel/installer前,确保已配置好全局镜像 - 用
create-project时显式指定:composer create-project laravel/laravel demo --repository-url=https://mirrors.cloud.tencent.com/composer/ - 老版本 Composer 可能不支持
--repository-url,建议升级到最新稳定版
镜像只加速包下载,不加速 autoload 生成或脚本执行——如果 install 后半段还卡,问题不在源,得看 post-install-cmd 或 autoload 逻辑本身。


















