根本原因是默认直连国外packagist.org导致dns慢、tls失败、无cdn及断点续传失效;必须执行三步:全局切换阿里云镜像、删除vendor和composer.lock、清缓存,并用-vvv验证日志中出现mirrors.aliyun.com。

composer install 卡在 downloading 怎么办
根本不是网络差,是默认直连 packagist.org,DNS 解析慢、TLS 握手失败、无 CDN、断点续传失效——换镜像源是唯一稳定解法。其他优化(如调并发、清缓存)都是辅助。
必须执行三步才真正生效:
-
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(注意中间的composer类型参数不能漏) - 删掉
vendor/和composer.lock(旧 lock 可能含已下线包,强制 fallback 到官方源) - 立刻运行
composer clear-cache(否则仍读缓存里的旧元数据,静默连packagist.org)
验证是否走镜像:运行 composer install -vvv 2>&1 | grep "Downloading",日志里必须出现 mirrors.aliyun.com 或对应镜像域名;只看命令没报错没用。
为什么换了源还卡在 Resolving dependencies
这阶段不发网络请求,纯本地 PHP 计算,卡住说明环境或依赖结构有问题,和镜像无关。
常见真实原因:
-
memory_limit过低(如 128M),加COMPOSER_MEMORY_LIMIT=-1再试 - 启用了
xdebug(php -v输出含xdebug),临时禁用:php -d xdebug.mode=off $(which composer) install -
composer.json中"platform"声明的 PHP 版本与实际不符(如写"php": "7.4"却在 PHP 8.2 上跑),触发降级查找逻辑 - 项目里误配了多个
repositories,每个都会触发一次元数据探测,拖慢解析
导出 vendor 目录时怎么避免重复下载和校验开销
导出(即部署)场景下,composer install 的目标是复现 lock 文件,不是解析新依赖——所以所有“更新类”操作都该关掉。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
推荐组合命令:
composer install --no-dev --prefer-dist --no-autoloader --no-scripts-
--no-dev:跳过开发依赖,减少包数量 -
--prefer-dist:强制走 ZIP 包,不 clone git(但前提是 lock 里 dist.url 指向可用地址;若指向codeload.github.com,需提前用ghproxy.com重写或部署内网 satis) -
--no-autoloader和--no-scripts:跳过耗时的 PHP 单进程操作(autoload 生成、artisan optimize 等)
CI/CD 中务必缓存 ~/.composer/cache,并确保 cache-dir 配置稳定(composer config -g cache-dir "$HOME/.composer/cache")。
parallel-downloads 已失效,该用什么替代
Composer 2.2+ 完全弃用 parallel-downloads,设了也静默忽略。正确配置项是 http-max-concurrent-downloads。
设置方式:
composer config -g http-max-concurrent-downloads 10- 值推荐 8–10;超过 15 容易触发镜像站限流或连接排队
- 仅对 HTTP/2 支持良好的镜像有效(阿里云、腾讯云镜像支持;旧镜像如
phpcomposer.com不支持) - 如果日志里仍看到大量串行
Downloading,先确认镜像 URL 是否以/结尾(https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌)
真正影响导出稳定性的,从来不是并发数,而是镜像源是否可用、lock 文件是否干净、PHP 环境是否干净——这些点一旦出问题,调再高并发也卡在第一个包。










