根本原因是 Composer 的 process-timeout 默认 300 秒过短,且不可通过 composer.json 修改;需全局执行 composer config -g process-timeout 1800 或设环境变量 COMPOSER_PROCESS_TIMEOUT=1800,同时配合阿里云镜像和 Git 超时配置。

Composer install 或 update 卡在 downloading 包时直接中断
根本原因不是网络慢,而是 Composer 默认的 timeout 太短(仅 300 秒),且对大包或高延迟源缺乏重试机制。国内用户常因源不稳定或 DNS 解析慢触发超时,但错误提示往往只显示 Failed to download ...,掩盖了真实瓶颈。
改 composer.json 的 config.timeout 不起作用?
这是最常踩的坑:config.timeout 只控制 HTTP 请求单次连接/读取超时,不控制整个下载流程。真正影响整体卡死的是 process-timeout——它限制的是每个外部命令(比如 git clone、unzip)的最大执行时间,默认 300 秒,且不可通过 composer.json 覆盖。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 全局修改:运行
composer config -g process-timeout 1800(单位秒,建议设为 1800 或更高) - 临时生效:加环境变量
COMPOSER_PROCESS_TIMEOUT=1800 composer install - 注意:该值过大会掩盖真正失败(比如权限问题),调试时建议先设 600,确认能走通再调高
换源只是辅助,关键要配对使用 https://packagist.phpcomposer.com 已停用
现在主流可用镜像只有两个:https://packagist.org 官方源(需科学上网)和 https://packagist.phpcomposer.com 已于 2022 年下线。国内推荐用 https://mirrors.aliyun.com/composer/ 或 https://packagist.laravel-china.org(后者已归档,不建议新项目用)。
- 设阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 验证是否生效:
composer config -g repo.packagist应输出对应 URL - 注意:换源后仍可能超时——因为某些包(尤其含
git类仓库)会绕过镜像直连 GitHub,此时必须配合process-timeout和 Git 代理
Git 包下载失败时,git clone 超时才是真瓶颈
Composer 遇到 "type": "git" 的包(比如开发版依赖),会调用系统 git clone,而该命令默认无超时限制,但若网络卡在 DNS 或握手阶段,会无限等待。这时 Composer 的 process-timeout 才真正起作用。
- 强制 Git 走 HTTPS(避免 SSH 认证失败):
composer config -g github-protocols https - 给 Git 加超时(非必须,但更健壮):
git config --global core.sshCommand "timeout 300 ssh"(Linux/macOS) - 如用代理,确保
http.proxy和https.proxy已配置,否则 Git 无法穿透
process-timeout 没用,得查本地网络环境。

















