卡在downloading时应调http-basic-timeout(composer 2.2+)或http.timeout(旧版),控制单次http请求的dns解析、tls握手、首字节等待及body传输,默认60秒太短,建议设300~600秒;同时必须配合process-timeout(默认300秒)管控总耗时,并优先换阿里云镜像源、清缓存、精准清理残留文件。

Composer下载卡在Downloading时该调哪个timeout
看-vvv输出最后一行,如果停在Downloading https://...,说明是单次HTTP请求超时,必须调http-basic-timeout(Composer 2.2+)或旧版的http.timeout。它控制DNS解析、TLS握手、首字节等待和整个body传输——不是“下载慢”,而是连接阶段就卡死。默认60秒太短,国内常见首字节延迟高,建议设为300~600。
process-timeout和http-basic-timeout必须一起调
这两个参数互不替代,只改一个大概率仍失败:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
process-timeout管总耗时:含依赖解析、解压、运行post-install-cmd、生成autoload等全部步骤,默认300秒 -
http-basic-timeout管每个HTTP请求:比如拉一个ZIP包,哪怕只差1字节没传完,也会在这里触发超时 - 临时生效:
composer install --timeout=1200 --http-basic-timeout=300 - 永久生效:
composer config -g process-timeout 1800+composer config -g http-basic-timeout 300
换镜像源比加timeout更治本
80%的“超时”本质是源不稳定,不是网速慢。阿里云镜像能绕过DNS污染、TLS握手抖动和国外源响应延迟:
- 配置命令:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 配完必须清缓存:
composer clear-cache,否则仍可能从损坏的本地缓存读取 - 验证是否生效:
composer config -g repo.packagist应输出对应URL,且composer install --dry-run里下载链接要变成mirrors.aliyun.com - 注意:git类包(
"type": "git")会绕过镜像直连GitHub,此时必须配合process-timeout和Git自身超时设置
中断后重试前必须清理残留状态
Composer没有断点续传,中断后残留的破损ZIP、截断的installed.json或卡死的临时目录会持续干扰后续执行:
- 不要直接删整个
vendor/——这会导致autoload.php缺失,引发后续命令报错 - 精准清理:
rm vendor/autoload.php+rm -rf vendor/composer/ - 再运行:
composer dump-autoload→composer install - 若仍报
Failed to extract或Content-Length mismatch,说明缓存已坏,必须composer clear-cache
vendor/里那些看似完整、实则校验失败的包文件——它们不会自己消失,也不会被--dry-run识别出来。










