应使用curl -w实测TTFB,因composer diag仅检测连通性不测延迟;需带Composer User-Agent头、-w "%{time_starttransfer}"提取首字节时间,并用--resolve绕过SNI问题。

用 curl -w 测真实 TTFB,别信 composer diag
composer diag 只告诉你“能不能连上”,不告诉你“第一字节要等多久”。它可能显示 OK,但 composer update 卡在 Fetching packages.json 12 秒——这 12 秒就是 TTFB(Time to First Byte),得用 curl 实测。
执行这个命令,替换为你当前镜像地址(查法见下一条):
curl -s -o /dev/null -f \
-H "User-Agent: Composer/2.9.6" \
-H "Accept: application/json" \
-w "TTFB: %{time_starttransfer}s, Total: %{time_total}s\n" \
https://mirrors.aliyun.com/composer/packages.json
- 必须带
-H "User-Agent: Composer/2.x",否则某些镜像返回 403 或缓存页 -
%{time_starttransfer}是关键,它反映服务端真正开始响应的时间, 1.5s 就已拖慢整个流程 - 如果返回 SSL 错误或超时,先试
--resolve绑定 IP(比如curl --resolve mirrors.cloud.tencent.com:443:119.29.29.29 ...)
先确认你真正在用哪个镜像源
很多人改了配置却没生效,因为:repo.packagist(单数)是旧写法,repos.packagist(复数)才是 Composer 2.2+ 的正确键名;项目级 composer.json 中的 repositories 会完全屏蔽全局设置。
分两步查清实际生效源:
- 查全局:运行
composer config -g repos.packagist.url—— 输出应为类似https://mirrors.cloud.tencent.com/composer/ - 查项目:进项目目录后运行
composer config repos.packagist.url—— 若有输出,说明项目级配置优先,全局无效
如果任一命令输出为空,说明当前走的是官方源 https://packagist.org,不是中文镜像。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
对比镜像与官方源的元数据新鲜度
镜像再快,如果同步滞后,composer require vendor/package:dev-main 仍会 fallback 或报 404。这不是网络问题,是数据陈旧。
直接比对两个关键字段:
- 访问
https://packagist.org/packages.json,找"lastUpdated"时间戳 - 访问你的镜像地址对应路径,如
https://mirrors.aliyun.com/composer/packages.json,同样找"lastUpdated" - 差值 > 90 秒即属异常延迟;阿里云通常 ≤ 90 秒,腾讯云高峰时段可能达 3–5 分钟
注意:浏览器访问镜像站首页看到的“更新时间”不可靠,必须看 packages.json 文件末尾的 JSON 字段。
Windows 用户绕过 TLS 和代理干扰
PowerShell 默认 TLS 版本低、且常受系统代理影响,导致 curl 失败或耗时虚高:
- 强制指定 TLS 1.2:
curl -k -SslProtocol Tls12 -Uri "https://mirrors.tuna.tsinghua.edu.cn/composer/packages.json" -Headers @{"User-Agent"="Composer/2.9.6";"Accept"="application/json"} - 禁用系统代理:
$env:HTTP_PROXY="" ; $env:HTTPS_PROXY=""再执行 - 若仍失败,换 WSL 运行 Linux 版
curl命令,结果更贴近 CI 环境真实表现
真实延迟永远藏在 HTTPS 握手和首字节之间,而不是命令行里那行“Loading composer repositories”停留的时间。

















