Composer卡在Resolving dependencies或Downloading主因是IPv6解析超时,应设COMPOSER_IPV4=1强制IPv4,并配置阿里云镜像https://mirrors.aliyun.com/composer/(末尾必须带斜杠)。

Composer卡在Resolving dependencies或Downloading,大概率是IPv6解析拖慢
不是镜像源慢,也不是你网速差,而是Composer默认先尝试IPv6地址连接,等超时(通常1–3秒)再fallback到IPv4。上百个包叠加下来,就是几分钟无响应。验证很简单:curl -v https://mirrors.aliyun.com/composer/packages.json,如果* Trying 240e::xxx出现,说明IPv6正在捣乱;ping mirrors.aliyun.com返回的要是118.31.67.205这类IPv4地址才对。
强制走IPv4最稳的环境变量写法
COMPOSER_IPV4=1是Composer 2.2+原生支持的开关,比改系统DNS或/etc/gai.conf更安全、更局部。它直接跳过所有AAAA记录解析,从源头避免fallback延迟。
- Linux/macOS:执行前加
COMPOSER_IPV4=1 composer install - Docker构建:在
RUN指令前写ENV COMPOSER_IPV4=1 - GitHub Actions:用
env: { COMPOSER_IPV4: 1 } - CI/CD中别信
composer config --global http.timeout 600——这只是拉长等待时间,不解决根本问题
镜像URL配置必须带末尾斜杠,且字段名不能拼错
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/这行命令四个要素缺一不可:
-
-g:全局配置,否则只作用于当前项目 -
repo.packagist:单数,写成repos.packagist就存进无效字段 -
composer:type值,不是注释,不能省略 -
https://mirrors.aliyun.com/composer/:末尾/不能少,少了会拼出/composerpackages.json导致404静默失败
Windows用户改完要重启终端,否则PHP进程读不到新环境变量;Docker里用sudo composer config -g写进了root用户配置,但构建用的是www-data,照样不生效。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
别指望多加镜像源自动fallback
Composer的repositories数组只在上一个源返回HTTP 404(包确实不存在)时才切下一个。遇到连接超时、502、证书错误,它只会死等30秒,默认不切换——这不是配置问题,是设计如此。
真正有效的组合只有两个动作:
- 设
COMPOSER_IPV4=1绕过IPv6探测 - 配好阿里云镜像
https://mirrors.aliyun.com/composer/(注意末尾斜杠)
其他操作比如改php.ini里的curl.ipresolve=4、或者CURL_IPRESOLVE=4,虽能起效但属于绕路方案,优先级不如Composer原生环境变量直接。

















