composer_PROCESS_TIMEOUT用于设置Composer执行外部命令的最大等待时间,默认300秒;可通过环境变量或composer.json的config字段调整,推荐根据网络情况适当延长以避免超时中断。

Composer 在安装或更新依赖时,如果遇到网络较慢或项目较大,可能会因为超时导致命令中断。这时可以通过设置 COMPOSER_PROCESS_TIMEOUT 环境变量来延长 Composer 允许单个进程运行的最长时间。
什么是 COMPOSER_PROCESS_TIMEOUT
该环境变量用于定义 Composer 执行外部命令(如 git clone、npm install 等)时等待响应的最大秒数。默认值通常是 300 秒(5 分钟)。当操作超过这个时间,Composer 会抛出类似 [symfonyComponentProcessProcessTimedOutException] 的错误。
如何设置 COMPOSER_PROCESS_TIMEOUT
有多种方式可以设置该变量,选择适合你开发环境的方式即可:
方式一:临时设置(推荐用于调试)
在执行 composer 命令前,直接在终端中设置环境变量:
COMPOSER_PROCESS_TIMEOUT=600 composer install
这将本次执行的超时时间设为 10 分钟(600 秒)。
- windows(命令提示符):
set COMPOSER_PROCESS_TIMEOUT=600 && composer install
- Windows(PowerShell):
$env:COMPOSER_PROCESS_TIMEOUT=600; composer install
方式二:永久设置环境变量
如果你经常遇到超时问题,建议将该变量写入系统环境变量中。
- Linux / macOS:编辑 ~/.bashrc 或 ~/.zshrc
添加一行:
export COMPOSER_PROCESS_TIMEOUT=600
保存后执行:source ~/.bashrc 使其生效。
- Windows:
通过“系统属性 → 高级 → 环境变量”添加:
- 变量名:COMPOSER_PROCESS_TIMEOUT
- 变量值:600
方式三:在 composer.json 中配置
虽然不能直接在 composer.json 中设置 PROCESS_TIMEOUT,但你可以通过 config 节点设置 http 超时等参数,与之配合使用:
"config": { "process-timeout": 600, "http-basic": { "gitlab.example.com": { "username": "xx", "password": "xx" } } }
注意:process-timeout 是 config 下的有效字段,作用类似于环境变量,优先级低于环境变量。
常见问题与建议
- 设置为 0 表示无限等待,不建议在生产环境使用,可能造成卡死。
- 若频繁超时,也应检查网络、镜像源或 Git 配置(如是否使用 ssh)。
- 国内用户可配合使用阿里云或 laravel China 的镜像源加快下载速度。
基本上就这些。合理设置 COMPOSER_PROCESS_TIMEOUT 能有效避免因超时中断导致的安装失败,提升开发效率。


