卡在“Resolving dependencies”是DNS解析失败或镜像源不可达所致,非超时问题;应先验证DNS(如dig mirrors.aliyun.com),再严格配置镜像(repo.packagist、type=composer、URL末尾带/)、清缓存并确认生效。

根本不是配置读取超时,而是 DNS 解析失败或镜像源不可达——composer config 命令本身不触发网络请求,真正卡住的是后续的 install 或 update 阶段。
卡在 Resolving dependencies 是 DNS 问题,不是 timeout 能解决的
这一阶段 Composer 只做域名解析(比如查 mirrors.aliyun.com 的 IP),不发 HTTP 请求、不走代理、不读 http.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 - 用手机热点试一次——很多企业网会屏蔽
packagist.org和 GitHub 域名,但热点通常直连通畅
卡在 Downloading https://... 才该动 http.timeout
只有到这一步,Composer 才真正发起 HTTP 请求,此时 http.timeout 才起作用。注意它控制的是单次请求(含 DNS 查询、TLS 握手、首字节等待、body 传输),默认仅 60 秒,对国内镜像首字节延迟高的场景极易触发 cURL error 28。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 全局设置:
composer config -g http.timeout 600(单位秒,600 = 10 分钟) - 项目级更稳妥(尤其 CI):
"config": {"http-timeout": 600}写进composer.json - 验证是否生效:
composer config -g http.timeout应输出600;若输出空或报错,说明配置未写入 - 别碰
http-basic-timeout:这是 Composer v1 废弃项,v2 完全不读取
镜像源配置错误会导致“看似成功,实则静默失效”
换源命令漏一个字符、少一个斜杠、键名写错,都会让配置完全不生效,但 Composer 不报错。
- 必须严格匹配键名:
repo.packagist(注意是repo单数,不是repos) -
type值必须是composer,不能省略,也不能拼成compose - URL 必须是 HTTPS 且末尾带
/:https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌(少斜杠会拼出非法路径/composerpackages.json) - 验证是否真生效:
composer config -g repo.packagist输出必须是完整 JSON,如{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} - 换源后必须执行
composer clear-cache,否则旧缓存仍会复用失败地址
CI 环境下最常被忽略的三个点
容器每次重启都会丢掉全局配置,只靠 composer config -g 不够稳。
- 必须用环境变量覆盖:
COMPOSER_PROCESS_TIMEOUT=1200比--timeout=1200更可靠,能覆盖插件和自定义 installer 启动的子进程 - 强制用 dist 包:
--prefer-dist避免git clone卡在子进程阶段(process-timeout才管这个) - 镜像 URL 必须显式写进 CI 脚本,不能依赖本地已配置的全局源;有些 CI 镜像自带旧版 Composer,
repo.packagist键名不兼容,得用repos.packagist.org.url

















