根本原因是 packagist.org 国外服务器在国内直连时受限速、DNS 污染或链路不稳定影响;推荐全局切换至腾讯云镜像源:composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/

为什么 Composer 总是 Connection refused 或超时?
根本原因不是网络差,而是默认源 https://packagist.org 服务器在国外,国内直连常被限速、DNS 污染或中间链路不稳定。尤其在腾讯云 CVM、阿里云 ECS 上,不换源时 composer install 卡在 “Loading composer repositories” 是常态——这不是你配置错了,是源本身不可靠。
全局切换到腾讯云镜像源(推荐新手/生产环境)
执行这条命令即可生效,无需重启终端或改配置文件:
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/
- 必须带
-g参数,否则只影响当前项目目录(且会写入composer.json,污染版本控制) - URL 结尾必须是
/composer/,少一个斜杠会报Could not fetch - 腾讯云镜像同步延迟通常
换源后必须做的两件事,否则等于没换
很多人执行完命令就去跑 composer install,发现还是慢——因为 Composer 在本地缓存了旧源的元数据。
- 先清缓存:
composer clear-cache - 再验证是否真走新源:
composer config -g repo.packagist,输出应为{"type": "composer", "url": "https://mirrors.cloud.tencent.com/composer/"} - 如果仍卡住,加
-vvv看真实请求地址:composer show laravel/framework --no-ansi -vvv | grep -i mirrors,确认日志里出现mirrors.cloud.tencent.com
临时切源或回退官方源的快捷方式
不想动全局配置?或者只是临时测试?有更轻量的方法:
- 单次命令生效(比如只想用腾讯云拉一个 Laravel 项目):
composer create-project laravel/laravel demo -r https://mirrors.cloud.tencent.com/composer/ - 想彻底还原官方源:
composer config -g --unset repos.packagist,之后自动 fallback 到https://packagist.org - 注意:
-r不支持多个参数,也不能和--repository-url混用;它只管元数据拉取,ZIP 包仍从 GitHub 下载,这点无法通过镜像绕过
ping mirrors.cloud.tencent.com 不通,或提示 secure-http false 错误,说明本地网络策略拦截了 HTTPS 请求——这时别硬调,换阿里云源 https://mirrors.aliyun.com/composer/ 更稳妥。










