必须更换国内镜像源,因默认 packagist.org 位于欧洲,导致 DNS 解析、TCP 连接、HTTPS 握手三重延迟;推荐执行 composer config -g repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/ 并启用 secure-http true,同时删除 composer.lock 后重装。

Composer 安装慢,基本就是源没切对 —— 不是网络差,是默认走的 packagist.org 域名在境外,DNS 解析+连接+下载三重卡顿。切国内镜像源后,composer install 和 composer create-project 速度通常能从分钟级降到秒级。
为什么默认源这么慢?
Composer 默认使用 packagist.org(主站)和 repo.packagist.org(API 端点),两者均托管在欧洲服务器,国内直连常出现:
- TCP 连接超时或频繁重试(尤其在非高峰时段)
- DNS 解析不稳定,
dig repo.packagist.org返回的 IP 经常是 Cloudflare 的中转节点,延迟高 - HTTPS 握手慢,部分运营商对 SNI 请求拦截或限速
- 镜像包未预热,首次请求需实时拉取并缓存,后续才快
怎么切全量镜像源(含 packagist + dist + metadata)?
只改 repositories 不够 —— 那只影响包元数据(composer.json 解析),实际 ZIP 包(dist)仍从境外下载。必须同时配置 packagist 和 dist-url。
执行以下命令一次性切换为清华源(稳定、同步及时、支持 HTTPS):
composer config -g repos.packagist composer https://packagist.phpcomposer.com composer config -g repo.packagist composer https://packagist.phpcomposer.com composer config -g secure-http false composer config -g github-protocols ["https"]
但更推荐用官方推荐的「全链路镜像」方式(适配 Composer 2.0+):
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
composer config -g repos.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/ composer config -g secure-http true
注意:secure-http true 必须开启,否则清华源的 HTTPS 证书会校验失败;mirrors.tuna.tsinghua.edu.cn/composer/ 已自动代理 dist 包、metadata、packages.all 等全部资源,无需额外设 dist-url。
常见踩坑点
切源后仍慢或报错,大概率是这些原因:
-
composer.lock文件里还存着旧源的哈希和 dist URL,直接composer install会复用旧地址 —— 应先删掉composer.lock再composer install,或强制刷新:composer update --lock - 项目根目录有
composer.json里硬编码了"repositories",会覆盖全局配置 —— 检查并删掉或注释掉该字段 - 用了阿里云、华为云等其他镜像,但它们不维护
packages.json全量索引,只做 dist 缓存,导致composer require找不到包 —— 推荐优先用清华或腾讯(https://mirrors.cloud.tencent.com/composer/) - 公司内网有代理或 DNS 劫持,
curl -I https://mirrors.tuna.tsinghua.edu.cn/composer/packages.json返回 403 或超时,需联系运维放行该域名
验证是否生效
运行 composer config -g repos.packagist,输出应为 https://mirrors.tuna.tsinghua.edu.cn/composer/;再执行 composer diagnose,重点看:
-
HTTP proxy support显示disabled(避免代理干扰) -
secure-http为enabled -
Checking composer.json下无警告
最后跑一次 composer show laravel/framework,响应时间应在 200–500ms 内,而非数秒以上。
镜像源不是万能解药 —— 如果项目依赖大量私有包或 Git 仓库,那些仍走原始地址;真正提速的是 packagist 官方生态内的包,也就是绝大多数 PHP 开源库。

















