“the process timed out”错误本质是子进程(如git clone、unzip)被强制终止,主因是process-timeout默认仅300秒过短;应全局设composer config -g process-timeout 1800,配合阿里云镜像与clear-cache生效。

“The process timed out” 错误本质是 Composer 启动的子进程(比如 git clone、unzip、php 脚本)被强制终止,不是网络慢或包大本身的问题,而是超时配置太短 + 没配对生效。
看到 “The process timed out” 就该调 process-timeout
这个错误一定伴随类似 [RuntimeException] The process "git clone ..." exceeded the timeout 的输出,说明是外部命令执行太久。它和 HTTP 下载无关,只受 process-timeout 控制——默认仅 300 秒,对含 Git 包、私有仓库或复杂 post-install-cmd 的项目完全不够。
- 全局永久生效:
composer config -g process-timeout 1800(建议设为 1800,即 30 分钟) - 项目级写入:
composer config process-timeout 1200(会写进当前composer.json的config段) - 临时覆盖(CI/调试用):
COMPOSER_PROCESS_TIMEOUT=2000 composer install或composer install --process-timeout=2000 - 不推荐设为 0:万一远程 Git 仓库彻底不可达,进程会无限挂起,阻塞 CI 流水线
卡在 Downloading https:// 是另一个 timeout 在作怪
如果 -vvv 输出最后一行停在 Downloading https://...,那根本不是 process-timeout 的事,而是单次 HTTP 请求卡死。这时要调的是 http-basic-timeout(Composer 2.2+)或旧版的 http.timeout,它管 DNS 解析、TLS 握手、首字节等待和整个 body 传输。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 默认值太激进:Composer 2.2+ 默认仅 60 秒,国内常见首字节延迟高,必超时
- 必须同步调高 PHP 的
default_socket_timeout:运行php -i | grep default_socket_timeout,若低于你设的http-basic-timeout,PHP 层会先掐断连接 - 推荐值:全局设
composer config -g http-basic-timeout 600,再确认default_socket_timeout≥ 600
换镜像源比加 timeout 更治本,但必须清缓存才生效
80% 的 “超时” 实质是源不稳定:packagist.org 响应抖动、DNS 污染、TLS 握手失败。阿里云镜像(https://mirrors.aliyun.com/composer/)能绕过这些链路问题,但换完不清理缓存等于白换。
- 设镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 验证是否生效:
composer config -g repo.packagist应输出对应 URL;composer install --dry-run中下载链接应变成mirrors.aliyun.com - 必须清缓存:
composer clear-cache,否则仍可能复用损坏的 ZIP 或过期 metadata - 注意例外:
"type": "git"的包会绕过镜像直连 GitHub,此时仍需靠process-timeout和 Git 自身配置兜底
中断后 vendor/ 和缓存里的“半成品”最麻烦
Composer 没有断点续传。一次失败后,vendor/ 里可能残留破损的 autoload、截断的 installed.json,~/.composer/cache/files/ 里可能存着校验失败的 ZIP——它们不会自动消失,也不会被重试跳过,下次运行仍会触发 Content-Length mismatch 或提取失败。
- 不要直接删整个
vendor/:会导致autoload.php缺失,后续命令报错 - 精准清理:
rm -f vendor/autoload.php && rm -rf vendor/composer/,再跑composer dump-autoload→composer install - 缓存已坏时,
composer clear-cache是唯一可靠解法,别指望--retry能救










