composer超时需分层诊断:卡在resolving dependencies是dns问题,应换dns或检查hosts;卡在downloading才调http.timeout并同步调高php default_socket_timeout;卡在executing command则需调整process-timeout。

卡在 Resolving dependencies 是 DNS 或网络连通性问题
这一步只做域名解析(比如查 mirrors.aliyun.com 的 IP),不走 HTTP、不读代理、不认 http.timeout。调 timeout 完全无效。
- 运行
dig mirrors.aliyun.com @114.114.114.114,看是否返回有效 IPv4 地址;若超时或无响应,说明本地 DNS 被污染或不可用 - 临时换 DNS:Linux/macOS 编辑
/etc/resolv.conf加nameserver 8.8.8.8;Windows 在网络适配器里手动设 - 检查
/etc/hosts(或C:\Windows\System32\drivers\etc\hosts)是否误把镜像域名指向了127.0.0.1或错误 IP - 用手机热点试一次——很多企业网会屏蔽
packagist.org和github.com,但热点通常直连通畅
卡在 Downloading https:// 是 HTTP 层超时
这时才真正发起 HTTP 请求,http.timeout 和 http.proxy 才起作用。常见报错含 cURL error 28 或反复 retry 后失败。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
http.timeout控制 DNS 解析 + TLS 握手 + 首字节等待 + 整个 body 传输的总时间,默认仅 300 秒(5 分钟),弱网下极易触发 - 项目级最稳:
composer config http.timeout 600,写入当前composer.json的config段,可提交、可复现 - 全局生效:
composer config -g http.timeout 600,写入~/.composer/config.json - 临时覆盖优先级最高:
COMPOSER_HTTP_TIMEOUT=1200 composer install,适合 CI 调试 - ⚠️ 注意:
php -i | grep default_socket_timeout查出的 PHP CLIdefault_socket_timeout若低于你设的http.timeout,会提前掐断连接——常见值是 60,务必同步调高
报 The process timed out 是子进程执行太久被杀
错误里一定含 [RuntimeException] The process "" exceeded the timeout,加 -vvv 可看到最后那条命令。它和 HTTP 完全无关,常见于 git clone、unzip、跑 post-install-cmd 脚本。
-
process-timeout控制单个外部命令最大执行时间,默认 300 秒 - 全局改:
composer config -g process-timeout 1800(30 分钟) - 项目级改:直接在
composer.json顶层加"config": {"process-timeout": 1200} - CI 环境建议用环境变量兜底:
COMPOSER_PROCESS_TIMEOUT=2000,某些 Composer 版本对它更敏感 - 设为 0 表示不限时,但不推荐——万一远程 Git 仓库彻底不可达,会无限挂起
换镜像比配代理更可靠
Composer 默认走 HTTPS,多数本地或公司 HTTP 代理不支持 CONNECT 隧道,导致卡在 Downloading https://。镜像源是更底层、更稳定的加速方式。
- 全局换源(推荐阿里):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 注意 URL 必须以
/结尾:https://mirrors.aliyun.com/composer/✅,少斜杠会拼出非法路径 - 验证是否真生效:
composer config -g repo.packagist输出必须是完整 JSON,如{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} - 换源后必须执行
composer clear-cache,否则旧缓存仍会复用失败地址 - curl -I https://mirrors.aliyun.com/composer/packages.json 确认返回 200 OK
composer.json 配置,先确认系统层连得通、PHP 层等得久,再动 Composer 参数。










