Composer卡点类型分四类:Resolving dependencies卡住是DNS问题,需查域名解析;Downloading卡住是HTTP超时,调http.timeout;Executing command卡住是子进程问题,调COMPOSER_PROCESS_TIMEOUT;Generating autoload files卡住是文件系统或PHP配置问题。

看 -vvv 输出最后一行,直接锁定卡点类型
Composer 超时不是单一配置能解决的问题,必须先知道它卡在哪儿。运行 composer install -vvv 或 composer update -vvv,只盯住最后几行输出:
- 停在
Resolving dependencies:DNS 解析失败或域名不可达,跟http.timeout完全无关 - 停在
Downloading https://...:HTTP 层超时,该调http.timeout - 停在
Executing command (CWD: ...):子进程(如git clone、unzip)卡死,process-timeout或环境变量COMPOSER_PROCESS_TIMEOUT才管用 - 停在
Generating autoload files后无响应:不是网络问题,是文件系统权限、WSL2 符号链接或 PHP 配置(如 APCu CLI 未启用)导致
Resolving dependencies 卡住?别调 timeout,先查 DNS
这一步 Composer 只做域名解析,不走 HTTP、不读代理、不碰任何超时设置。它只是查 mirrors.aliyun.com 或 packagist.org 的 IP 地址。
- 用
dig mirrors.aliyun.com @114.114.114.114看是否返回有效 IPv4;若超时或无响应,说明本地 DNS 被污染或不可用 - 临时换 DNS:
sudo echo "nameserver 8.8.8.8" >> /etc/resolv.conf(Linux/macOS),Windows 在网络适配器里手动设 - 检查
/etc/hosts(或C:\Windows\System32\drivers\etc\hosts)是否误把镜像域名指向了127.0.0.1或错误 IP - 用手机热点试一次——很多企业网会屏蔽
packagist.org和 GitHub 域名,但热点通常直连通畅
Downloading 卡住?验证镜像源连通性再调参
只有到这一步,Composer 才真正发起 HTTP 请求。此时 http.timeout 和 http.proxy 才起作用,但前提是镜像 URL 真的能访问。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 先用
curl -I https://mirrors.aliyun.com/composer/packages.json测试镜像源 HTTP 状态;返回 200 才算通,301/404/超时都说明配置无效或镜像挂了 - 确认镜像配置严格正确:
composer config -g repo.packagist必须输出完整 JSON,如{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"};注意末尾斜杠/缺不得,type值必须是composer,不能拼错 - 换源后必须执行
composer clear-cache,否则旧缓存仍会复用失败地址 - 全局延长超时:
composer config -g http.timeout 600(单位秒);项目级更稳妥:"config": {"http.timeout": 600}写进composer.json
Executing command 卡住?重点排查 Git 和 ZIP 下载
这一阶段常见于私有包克隆、GitHub API 调用或大 ZIP 包解压,http.timeout 对它无效,得看子进程本身。
- 若卡在
Cloning into 'vendor/xxx':检查是否用了 SSH 地址(git@github.com:user/repo.git),换成 HTTPS 地址更稳定;或设GIT_SSH_COMMAND="ssh -o ConnectTimeout=10" - 若卡在
Downloading https://api.github.com/...:需配置 GitHub Token,在~/.composer/auth.json中加{"github-oauth": {"github.com": "your_token_here"}} - 避免
--prefer-source:它强制走 Git 克隆,比--prefer-dist(下 ZIP)更容易因网络波动卡死 - 调高子进程总时限:
COMPOSER_PROCESS_TIMEOUT=1200比命令行--timeout更可靠,尤其对插件触发的子进程
真正容易被忽略的是配置生效条件:全局镜像会被项目级 repositories 字段完全屏蔽,哪怕它只是空数组;新版 Composer ≥ 2.2 要求键名是 repos.packagist(复数),写成 repo.packagist 会静默失效。这些细节不验证,调再久的 timeout 都白等。

















