直接运行 composer config -g repo.packagist,输出必须是形如 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} 的 json 对象;若为空、null 或仍为 "https://packagist.org/",说明镜像未生效。

怎么确认 Composer 正在用哪个镜像
直接运行 composer config -g repo.packagist,输出必须是类似 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} 这样的 JSON 对象。如果返回空、null、或仍是 "https://packagist.org/",说明镜像根本没生效——后续所有测速都白搭。
常见干扰项:
- 误用
composer config repo.packagist(漏掉-g),只改了当前项目,全局仍走官方源 -
COMPOSER_HOME环境变量指向了其他目录,导致读取了错误的config.json - 键名写成
repos.packagist(多一个s)或repositories.packagist.org,新版 Composer 2.2+ 已不认这些写法
为什么不能用 composer diagnose 测镜像连通性
composer diagnose 会强制访问 https://packagist.org,完全忽略你配置的镜像地址。即使你已切到清华源,它仍可能报 curl error 7: Failed to connect to packagist.org——这不是故障,是设计如此。
它真正检查的只有三件事:PHP version、OpenSSL 是否可用、curl 扩展是否存在,全部不依赖网络。想验证镜像是否真能用,必须手动发请求。
用 curl 测真实响应耗时的关键参数
对镜像的 /packages.json 发起 HEAD 请求,统计 STARTTRANSFER_TIME(服务端返回首字节时间),这才是 Composer 实际行为最接近的指标。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
正确命令示例:
curl -I -w "%{time_starttransfer}\n" -m 5 -s https://mirrors.aliyun.com/composer/packages.json
注意要点:
- 必须用
-I(HEAD),不是-s -o /dev/null(GET),避免下载完整 JSON 浪费带宽 - 必须加
-m 5设超时,防止某个镜像卡死拖慢整个流程 - URL 必须带
/packages.json后缀,根路径如/composer/可能重定向或返回 HTML,不可比 - 别信
%{time_total},它含 DNS 解析时间;%{time_starttransfer}才反映后端响应速度
哪些镜像地址现在还能用,哪些已经失效
截至 2026 年 7 月,以下地址实测可正常返回 HTTP/2 200 和 Content-Type: application/json:
- 阿里云:
https://mirrors.aliyun.com/composer/ - 腾讯云:
https://mirrors.cloud.tencent.com/composer/ - 清华源:
https://mirrors.tuna.tsinghua.edu.cn/composer/ - SJTUG:
https://mirrors.sjtug.sjtu.edu.cn/composer/
已停用地址(测了也白测):
-
https://packagist.phpcomposer.com(返回 HTML 或乱码) -
https://packagist.laravel-china.org(404 或证书过期)
末尾少斜杠、协议写成 http://、或 URL 多了个 www 前缀,都会触发 Composer 内部安全策略静默降级回官方源,且不报错——你只会发现慢,却查不到原因。










