composer install卡在downloading的主因是未切换国内镜像源、未清除缓存、未启用并行下载及未关闭xdebug等调试开关,导致dns/tls阻塞和串行等待,而非网络或机器性能问题。

composer install 本身不慢,慢是因为默认配置没关、镜像没切、命令没选对。 它本该是秒级操作,卡在 2–5 分钟,90% 是环境没调好,不是网络或机器问题。
composer install 卡在 downloading 怎么办
这基本等于 Composer 在挨个连 packagist.org,DNS 解析慢、TLS 握手卡、单连接限速全堆在一起。它根本没用上你机器的带宽和并发能力。
- 先确认镜像是否生效:
composer config -g repo.packagist输出必须是"url": "https://mirrors.aliyun.com/composer/"(阿里云)或"url": "https://packagist.phpcomposer.com"(PHP Composer 镜像),不是https://packagist.org - 清掉旧缓存:
composer clear-cache,否则它可能还在用失效的海外元数据 - 强制启用并行下载:
composer config -g parallel-downloads 10(Composer 2.2+ 才支持,composer --version确认) - 加
--prefer-dist参数,但前提是镜像已生效——国内镜像只缓存 dist 包,没切镜像时加了也 fallback 到慢速 source
composer install 卡在 Resolving dependencies 怎么办
这跟网络无关,是 Composer 在本地反复解析依赖约束,常见于 lock 文件异常或配置污染。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 运行
composer validate --strict,检查composer.lock是否格式合法、哈希完整;缺失或损坏会触发退化行为 - 删掉项目
composer.json中的"minimum-stability": "dev"或"prefer-stable": false,它们会让求解器陷入组合爆炸 - 检查是否残留已下线的私有仓库配置:
composer config --list和composer config --list --global对比,临时绕过自定义源测试:composer install --no-plugins --repository=https://packagist.org - CI 环境中确保 PHP 的 OPcache 已启用,禁用会导致 Composer 自身代码反复编译
生产部署时怎么让 composer install 真正快起来
关键不是“装得快”,而是“少做没必要的事”。vendor 目录生成后不能直接跑?那是命令漏了参数,不是 Composer 慢。
- 跳过开发依赖:
--no-dev,省掉 30–60% 时间,且避免引入 phpunit、larastan 这类非运行时包 - 跳过 autoload 生成和脚本执行:
--no-autoloader --no-scripts,CI 构建阶段 vendor 不需要立刻可用 - 后续补优化 autoload:
composer dump-autoload --optimize --classmap-authoritative,比 install 时顺带生成快得多 - 关掉 Xdebug:
php -d xdebug.mode=off composer install ...,开着它 Composer 会慢 3–5 倍
为什么加了 --concurrency 还是慢
并发数设得再高,如果底层被堵死,所有线程都在等 DNS 或 TLS 握手,结果就是“看起来并发了,实际还是串行”。
- 用
strace -e trace=connect,openat -p $(pgrep -f "composer install")看是否卡在 connect() 调用上——大概率是 DNS 或镜像源响应慢 - 换 DNS(比如
1.1.1.1)或临时禁用 TLS(export COMPOSER_NO_TLS=1,仅限内网可信环境) - macOS 或 Windows 上注意杀毒软件实时扫描:
vendor/写入会被逐文件拦截,关掉 Windows Defender 实时防护或排除该目录 -
--concurrency=8在 4 核机器上可能反而更慢,建议设为CPU 核心数 × 1.5,上限不超过 12
真正拖慢 composer install 的,从来不是下载本身,而是那些默认开启却没人关的调试开关、交互提示、自动加载扫描和钩子脚本。一个没关的 Xdebug,比换十次镜像都致命。










