卡在Downloading应调http.timeout:该参数控制HTTP请求总耗时(DNS+连接+传输),默认300秒,可设为600全局生效或通过COMPOSER_HTTP_TIMEOUT临时覆盖;若仍失败,需检查PHP底层default_socket_timeout限制及镜像源有效性。

卡在Downloading https://?该调 http.timeout
这是最常见的情况:命令停在 Downloading https://mirrors.aliyun.com/... 或反复 retry,最终报 cURL error 28。本质是 Composer 发起 HTTP 请求后,在等待响应数据时被中断——http.timeout 控制的就是这个阶段的总等待秒数(DNS + 连接 + 传输),默认仅 300 秒。
- 项目级生效(推荐,可提交到仓库):
composer config http.timeout 600 - 全局生效(影响所有项目):
composer config -g http.timeout 600 - 临时覆盖(优先级最高):
COMPOSER_HTTP_TIMEOUT=1200 composer install - 注意:
--http-timeout=600仅 Composer 2.2+ 支持;旧版本不识别该参数,必须用http.timeout配置项
卡在 Cloning into 'xxx' 或报 The process timed out?该调 process-timeout
现象是命令卡在 Cloning into '/tmp/...'...、Executing command: unzip -qq ...,或直接抛出 [RuntimeException] The process timed out.。这和网络下载无关,而是子进程(git clone、unzip、php script)执行太久被杀——process-timeout 控制的就是这个。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 项目级:
composer config process-timeout 1800(写入当前composer.json的config段) - 全局已废弃:
composer config -g process-timeout在新版中无效,别再用 - 真正有效的全局方式是环境变量:
export COMPOSER_PROCESS_TIMEOUT=1800(Linux/macOS)或 Windows 系统变量 - 临时调试:
composer install --process-timeout=1800或COMPOSER_PROCESS_TIMEOUT=1800 composer update
设了 http.timeout 还卡在 github.com?PHP 底层 socket 先掐断了
即使你把 http.timeout 设成 1200,仍可能在 60 秒左右就断开,错误里没出现超时字样,而是直接连接失败或空响应。这是因为 PHP CLI 的 default_socket_timeout ini 值(常为 60)会早于 Composer 的超时机制生效,强制中断底层 socket 连接。
- 查当前值:
php -i | grep default_socket_timeout - 临时绕过:
php -d default_socket_timeout=1200 $(which composer) install - 长期方案:找到 CLI 专用 php.ini(
php --ini查路径),修改default_socket_timeout = 1200,并顺手检查max_execution_time - 注意:
default_socket_timeout影响所有 stream/curl 行为,不是 Composer 特有
为什么调了超时还失败?DNS 和镜像源才是真瓶颈
超时只是表象。如果卡在 Resolving dependencies,http.timeout 完全不生效——那是 DNS 解析卡住,得查 dig mirrors.aliyun.com 或改 /etc/hosts 绑定 IP;如果反复重试后报 Failed to decode response,大概率是 zip 包下载中途损坏,此时加 --no-cache 强制重拉更有效。
- 换镜像比调 timeout 更治本:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 禁用 packagist.org 回源(避免降级失败):
composer config -g repos.packagist.org false - 大包下载中断还可能是 ulimit 或磁盘空间不足,
df -h和ulimit -a得顺手看看

















