process-timeout 控制本地命令执行超时(默认300秒),非网络问题;建议设为600~1800秒,优先项目级配置;http-timeout才管下载超时,需另调;-v和--no-scripts更利于精准定位卡点。

卡在 Installing dependencies 或报 The process timed out 是 process-timeout 在起作用
Composer 默认只给每个子进程(比如 git clone、unzip、php artisan optimize)最多 300 秒(5 分钟)运行时间,超时就直接中断——这不是网络慢,而是本地命令跑太久被杀掉了。
- 常见现象:
[RuntimeException] The process timed out.,或卡在Installing dependencies from lock file后不动,但 CPU/磁盘几乎没压力 - 它和 HTTP 下载无关:改
process-timeout不会解决Could not fetch packages.json这类错误 - 值设为
0表示禁用检查(不推荐,真卡死可能得手动 kill) - 建议范围:600~1800 秒(10~30 分钟),够应对私有 Git 仓库、大体积包解压或慢脚本
怎么改 process-timeout?三种方式优先级不同
别只改全局配置,项目级更安全;环境变量最灵活,适合 CI 流水线。
- 项目级(推荐):
composer config process-timeout 1800→ 写入当前composer.json的"config"段,只影响这个项目 - 全局级(慎用):
composer config -g process-timeout 1800→ 写入~/.composer/config.json,所有项目都受控 - 临时覆盖(调试首选):
composer install --process-timeout=1800或COMPOSER_PROCESS_TIMEOUT=1800 composer update
注意:composer config --global process-timeout 在新版 Composer 中已废弃,别信过时教程。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
http-timeout 才管下载卡住,不是 process-timeout
如果你看到的是 Downloading https://mirrors.aliyun.com/... 卡住、或反复报 Connection timed out,那得调 http-timeout,它控制 Composer 内部 cURL 请求的单次连接/读取上限。
- 设法:
composer config --global http-timeout 600(单位秒) - 它和
process-timeout完全独立:一个管网络请求,一个管本地命令执行 - 但比调超时更有效的是换镜像源:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 某些企业内网 Git 服务(如 Gitee 私有版)本身有连接限制,Composer 改了也没用,得调 Git 配置,比如
git config --global http.postBuffer 524288000
为什么加 -v 和 --no-scripts 比盲目调超时更有用
超时只是表象,背后可能是某条 post-install-cmd 脚本写得有问题,或者 vendor 里有 symlink 导致 autoload 生成极慢——这时候拉高 timeout 只是“等它慢慢死”。
- 加
-v(verbose)看最后执行哪条命令:Running command (CWD): php ./vendor/bin/phpunit --version,再观察它是否真卡住 - 用
--no-scripts跳过所有钩子脚本,如果这时不超时,说明问题出在post-install-cmd或post-update-cmd - WSL2/Docker 用户要特别注意:
Generating autoload files卡住,大概率是文件系统层 symlink 解析慢,不是超时问题
真正难搞的从来不是 timeout 数值,而是分不清「是网络卡、命令慢、还是 autoload 构建崩了」——先定位,再调参。

















