composer install卡在downloading是因curl默认超时(http.timeout 60秒、connect-timeout 10秒)触发,需全局配置http.timeout 600和http.connect-timeout 60,并切换阿里云镜像源以根本解决路径不稳定问题。

为什么composer install卡在Downloading就停住
不是网络真断了,而是 Composer 底层用 cURL 下载 ZIP 包时触发了默认超时:总超时 http.timeout 仅 60 秒,连接超时 http.connect-timeout 仅 10 秒。遇到 Laravel、Symfony 或带二进制的包(如 phpstan/phpstan),首字节延迟高或传输慢,直接报 cURL error 28: Operation timed out after 300000 milliseconds——注意这个“300000”是毫秒,即 300 秒,说明它已走到 cURL 层级的默认总限值。
必须同步调的两个超时参数:http.timeout 和 http.connect-timeout
只改 process-timeout 没用,它管不了 HTTP 下载本身。真正起作用的是这两个独立配置:
-
http.timeout:控制单次请求全周期(DNS + TLS 握手 + 首字节等待 + body 下载),建议设为600(10 分钟) -
http.connect-timeout:专控 TCP 连接建立阶段,国内弱网下易卡在此处,建议设为60
执行命令一次性写入全局配置:
composer config -g http.timeout 600<br>composer config -g http.connect-timeout 60
验证是否生效:运行 composer config -g http,输出里应明确看到这两项。
换镜像源比调超时更治本,且必须确认它真在用
超时只是表象,根源是直连 packagist.org 的路径不稳定。阿里云镜像已优化 HTTP/2、CDN 缓存和 TLS 加速,实测下载速度提升 3~5 倍。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
但很多人设了镜像却没生效,原因包括:
- 项目级
composer.json中硬编码了"repositories"字段,覆盖了全局配置 - 执行
composer config -g repos.packagist输出仍是{"type": "composer", "url": "https://packagist.org/"},而非镜像地址 - 本地 DNS 解析慢,或公司代理强制走 HTTPS 扫描导致 TLS 握手 hang 住
正确操作:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/<br>curl -I https://mirrors.aliyun.com/composer/packages.json
若返回 HTTP/2 200 且耗时
大包中断后别盲目重试,先看 --dry-run 再决定清理
Composer 不支持断点续传,但安装是分阶段的。是否能直接重试,取决于失败点:
- 如果
composer install --dry-run输出大量Skipped,说明 vendor 已解压完整,重试即可 - 如果报
Failed to extract vendor/package-name: unable to open archive,是 ZIP 下载不完整,必须rm -rf vendor+composer clear-cache - 如果报
Invalid argument supplied for foreach(),是vendor/composer/installed.json被截断,删 vendor 后自动重建
CI 环境中尤其要注意:每次构建都应配 --prefer-dist(跳过 git clone)、--no-plugins(避免插件并发干扰)、并启用缓存目录(如 $HOME/.composer/cache),否则每次都是从头下百 MB ZIP。










