停在resolving dependencies是dns或元数据拉取失败,需检查dns解析(如dig packagist.org)、换dns服务器、确认无防火墙/代理拦截;而非http超时,调http.timeout或process-timeout无效。

卡在 Resolving dependencies、Downloading https:// 或 Executing command 不是同一个问题,不能统一加 --timeout=600 就完事——调错参数等于白调。
停在 Resolving dependencies 怎么办
这不是 HTTP 超时,而是 DNS 解析或 Packagist 元数据拉取失败。cURL 根本没发出去,改 http.timeout 或 process-timeout 没用。
- 先试
dig packagist.org或nslookup packagist.org,看 DNS 是否响应慢或超时 - 临时换 DNS:Linux/macOS 执行
echo "nameserver 114.114.114.114" | sudo tee /etc/resolv.conf;Windows 在网络适配器里手动设 - 确认没被防火墙或代理拦截——
curl -v https://packagist.org/packages.json看能否手动拿到响应 - 别碰
process-timeout,它此时还没启动
停在 Downloading https:// 该调哪个 timeout
这是 HTTP 层卡住,典型错误是 cURL error 28 或反复 retry 后失败。只认 http.timeout(Composer 2.x)或 http-basic-timeout(2.2+),跟 process-timeout 完全无关。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
http.timeout控制整个 HTTPS 请求周期(DNS + TLS 握手 + 首字节等待 + body 传输),默认仅 300 秒;弱网下建议设为600或1200 -
http-basic-timeout(Composer ≥ 2.2)更细粒度,只管单次 GET 的连接和读取,适合设为300防握手慢中断 - PHP 底层会掐断:运行
php -i | grep default_socket_timeout,若输出是60,必须同步执行php -d default_socket_timeout=1200 composer install - 项目级生效:运行
composer config http.timeout 1200,写入当前composer.json的config段
报 The process timed out 错误该动哪个参数
错误信息里一定含 [RuntimeException] The process "" exceeded the timeout,且 -vvv 输出最后一行是 Executing command —— 这才是 process-timeout 的管辖范围。
- 它控制
git clone、unzip、tar -xzf、post-install-cmd脚本等子进程,和 HTTP 下载无关 - 默认 300 秒太保守,大包解压或慢磁盘上很容易触发;建议设为
1200~1800 - 临时生效:加
--timeout=1200(注意带等号,--timeout 1200会被静默忽略) - 全局生效:运行
composer config -g process-timeout 1800 - CI 环境推荐环境变量:
COMPOSER_PROCESS_TIMEOUT=2000 composer install
镜像配置了但还是超时?清缓存和查覆盖优先级
换了阿里云/腾讯镜像还报错,大概率是缓存没清,或配置被项目级 repositories 覆盖。
- 必须先执行
composer clear-cache,否则 Composer 可能继续读本地失效缓存 - 检查项目
composer.json里是否硬写了"repositories"字段——它优先级高于全局镜像,会直接忽略config -g设置 - 验证镜像是否真生效:运行
composer config -g repos.packagist,输出应为{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} - 若用 Docker,确认
COMPOSER_HOME挂载路径没被覆盖,否则config -g写不进容器内
最常被忽略的是 PHP 底层的 default_socket_timeout:哪怕你把 http.timeout 设成 1200,只要这个值是 60,cURL 就会在 60 秒后直接断连,Composer 根本收不到超时重试逻辑。










