推荐换阿里云镜像源:执行 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 全局生效,验证输出应为含该 URL 的 JSON;腾讯云镜像存在同步延迟和证书校验问题;create-project 需加 --repository-url 或升级 Composer 2.x;镜像失效时可 unset 后重设或手动编辑 config.json 并清缓存。

Composer 默认源在国外,国内直接用 composer install 或 composer update 极易超时、卡死或报 Connection refused 错误。最有效解法不是改 hosts 或开代理,而是换国内镜像源——阿里云和腾讯云镜像都可用,但要注意:它们不完全等价,且全局设置与项目级设置行为不同。
怎么快速切换到阿里云镜像(推荐)
阿里云镜像同步及时、稳定性高,是目前最稳妥的选择。执行以下命令即可全局生效:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
验证是否生效,运行:
composer config -g repo.packagist
输出应为 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。注意:-g 表示全局配置,写入的是 ~/.composer/config.json,对所有项目生效;若只想改当前项目,去掉 -g 即可。
腾讯云镜像能用吗?有什么坑
腾讯云镜像地址是 https://mirrors.cloud.tencent.com/composer/,技术上可用,但存在两个现实问题:
- 部分较新的包(尤其是 dev 分支或刚发布的版本)同步有数分钟延迟,容易触发
Could not find package xxx - 其根证书在某些旧版 OpenSSL 环境下校验失败,报错类似
cURL error 60: SSL certificate problem
如必须用腾讯云,建议加 --no-secure-http 临时绕过(不推荐长期使用):
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ composer config -g secure-http false
为什么 composer create-project 还是慢?
这个命令默认不走你设的镜像源,它会先从 Packagist.org 拉取 composer.json 元数据,再下载 ZIP 包——而 ZIP 包地址仍指向原始 GitHub/GitLab,不受镜像控制。
解决办法有两个:
- 用
--repository-url显式指定镜像源:composer create-project laravel/laravel myapp --repository-url=https://mirrors.aliyun.com/composer/
- 更彻底的做法:安装
hirak/prestissimo插件(已弃用但兼容性好),或升级到 Composer 2.x(默认并行下载 + 内置镜像感知逻辑)
镜像失效了怎么办?怎么回退
镜像源偶尔维护或变更 URL(比如阿里云曾从 http 升级为强制 https),遇到 Could not resolve host 或 403 Forbidden 时,优先检查官方公告,再手动重置:
composer config -g --unset repos.packagist composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
如果连 composer config 都执行失败(比如因网络导致命令卡住),可直接编辑 ~/.composer/config.json,删掉 repos 字段或修正 url 值。别忘了清缓存:
composer clear-cache
真正麻烦的不是换源本身,而是有些 CI/CD 流水线或 Dockerfile 里硬编码了 https://packagist.org,这类地方得一并改掉,否则本地快了,上线照样挂。










