DNS解析失败是Composer依赖解析卡住的主因,需用dig验证镜像域名是否返回正确IPv4地址,再检查全局配置、hosts文件、缓存及HTTPS连通性。

直接用 dig 看镜像域名是否解析出 IPv4 地址
Composer 在 Resolving dependencies 阶段只做 DNS 查询,不发 HTTP 请求,也不读代理或超时配置。这一步卡住,99% 是 DNS 解析失败或返回了错误 IP。
执行:dig mirrors.aliyun.com +short 或 dig mirrors.tuna.tsinghua.edu.cn +short(换成你配的镜像域名)
- 如果返回一串 IPv4 地址(如
123.56.123.45),说明 DNS 正常,问题不在这一层 - 如果超时、无输出、或返回空行,说明本地 DNS 不可用或被污染
- 若返回
127.0.0.1或明显错误的 IP,检查/etc/hosts(Linux/macOS)或C:\Windows\System32\drivers\etc\hosts(Windows)是否误写了映射
composer config -g repo.packagist 输出必须匹配你设的镜像 URL
很多人改了配置但没生效,是因为写错键名、漏掉 -g、或被项目级 composer.json 覆盖。
运行:composer config -g repo.packagist
- 正确输出应类似:
{"type": "composer", "url": "https://mirrors.tuna.tsinghua.edu.cn/composer/"} - URL 末尾必须带
/,少一个就会 404;https://不可写成http:// - 如果输出是
null或报错,说明全局配置根本没写进去——大概率漏了-g参数,或者COMPOSER_HOME指向了错误路径 - 再运行
composer config repo.packagist(不加-g),对比是否一致;若不同,说明项目级composer.json的repositories字段优先级更高,会覆盖全局设置
进空目录跑 composer require 观察真实行为
很多配置只在“无项目上下文”时才由全局值驱动,这是验证是否真生效最可靠的现场测试方式。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
操作步骤:
- 新建空目录:
mkdir /tmp/test-composer && cd /tmp/test-composer - 执行:
composer require monolog/monolog --no-install - 观察终端输出的第一行请求地址:是否为你的镜像源(如
https://mirrors.tuna.tsinghua.edu.cn/composer/packages.json) - 如果仍出现
packagist.org或连接超时,说明镜像未生效,不是网络问题,而是配置或缓存问题
注意:改完镜像后必须手动运行 composer clear-cache,否则 Composer 仍可能从旧缓存里读取过期的元数据和地址。
为什么 ping packagist.org 没用,但 curl -I 有用
国内服务器 ping packagist.org 大概率不通,因为 ICMP 被墙,但这不代表 HTTPS 不通;反过来,DNS 解析正常也不代表 HTTPS 可达。
验证镜像源连通性,应该用:
-
curl -I https://mirrors.aliyun.com/composer/packages.json—— 看是否秒回HTTP/2 200 -
curl -v https://mirrors.tuna.tsinghua.edu.cn/composer/—— 看 TLS 握手是否成功、有没有证书错误 - 如果
curl成功但 Composer 还失败,重点查allow_url_fopen(php -r "echo ini_get('allow_url_fopen');")和 CA 证书路径(openssl.cafile是否指向有效证书 bundle)
DNS 优化只是第一环,它只管把域名变成 IP;后续 HTTPS 连接、证书校验、PHP 网络能力,每一步都可能断在不同位置。别只盯着一个点反复试。

















