Composer安装卡死90%非网络问题,需先运行-vvv看最后几行:停在Resolving dependencies是SAT求解器暴力回溯版本约束,换镜像无效;停在Downloading才是镜像或IPv6问题,须手动curl验证;项目级repositories字段会覆盖全局配置。

Composer 安装卡死,90% 不是网络慢,而是你没看清它到底卡在哪一步——composer install -vvv 最后一行才是唯一可信线索,其余全是干扰。
卡在 Resolving dependencies 是求解器问题,换镜像完全无效
这步 PHP 正在暴力回溯所有版本组合,和网络、镜像、DNS 都无关。常见诱因包括:composer.json 里写了 "^1.0 || ^2.0" 这类宽泛约束,或引入了 dev-main 分支的私有包触发循环依赖。默认内存限制(1.5GB)也常不够,尤其含大量 require-dev 包时。
- 临时加大内存:
php -d memory_limit=-1 composer install或设环境变量COMPOSER_MEMORY_LIMIT=-1 -
http.timeout对这步完全无效,调它等于白忙 - Composer 2.9.6 的 SAT 求解器虽有优化,但约束爆炸仍会卡住;可先缩小
require范围,验证后再逐步放开
Downloading 后无响应?先手动验证镜像是否真通
别只信 composer config -g repo.packagist 输出,要亲手确认请求是否发到国内地址。运行 composer install -vvv,盯住第一行日志:必须出现 Downloading https://mirrors.aliyun.com/composer/packages.json。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(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,返回200 OK才算通;返回301或超时,说明镜像地址写错或被网络策略拦截 - 腾讯云当前推荐地址是
https://packagist.proxy.tencent.com/,不是mirrors.cloud.tencent.com子域(后者已不维护) - 清华源地址应为
https://mirrors.tuna.tsinghua.edu.cn/composer/;packagist.phpcomposer.com自 2025 年底起已停服
进度条不动 ≠ 真卡住,Composer 7+ 默认异步下载不输出实时进度
Mac 或 Linux 上看到进度条停在 0%,大概率是 Composer 7+ 在后台解压 ZIP、校验 SHA256、写入 vendor,只是没告诉你。这不是 bug,是设计行为。
- 加
-vvv确认真实状态:composer install -vvv 2>&1 | grep -E "(Downloading|Extracting|Writing)" - 临时禁用并行:
COMPOSER_DISABLE_PARALLEL=1 composer install,进度变慢但可感知 - 跳过 ZIP 解压瓶颈:
"preferred-install": {"*": "source"}加进composer.json,改用 Git 克隆源码
IPv6 解析失败才是下载卡顿的隐形元凶
Composer 卡在 Downloading,大概率不是网速慢,而是 IPv6 解析超时后才回退 IPv4——每个请求多耗 1–2 秒,叠加后直接“假死”。http.timeout 无效,COMPOSER_NO_IPV6=1 才是稳解。
- 确认方式:
composer install -vvv最后几行若反复出现[2a02:fc00::1]或::ffff:185.199.108.153类地址,基本锁定 - Linux/macOS:
COMPOSER_NO_IPV6=1 composer install - Windows PowerShell:
$env:COMPOSER_NO_IPV6="1"; composer install - 别碰系统级 IPv6 配置(如
/etc/gai.conf),会影响git、curl、npm等所有工具
最易被忽略的点:项目根目录下 composer.json 里的 repositories 字段,哪怕只写了一行 "repositories": [],也会直接覆盖全局镜像配置——此时换源、清缓存、调超时,全无意义。

















