composer 2.1+ 原生支持并行下载,无需且禁用hirak/prestissimo;应升级至2.2+,配置http-max-concurrent-downloads为8,切换阿里云镜像并清缓存,通过composer install -vvv观察多数字跳变验证生效。

别装 hirak/prestissimo 了——它对 Composer 2.1+ 完全无效,还可能引发 file_put_contents(/tmp/): failed to open stream 或签名校验失败。你看到的“没提速”,不是配置错,是插件根本没运行。
确认 Composer 版本再动手
Composer 2.1+ 原生支持并行下载,hirak/prestissimo 被自动忽略或静默禁用;只有 1.x 用户(如 1.10.22)才该考虑它。
- 运行
composer --version,输出必须是Composer version 1.x才能继续 - 若显示
2.1.x或更高,立刻执行composer global remove hirak/prestissimo - 旧版用户升级前先备份:插件在 2.0+ 下可能破坏
composer.lock结构
Composer 2.2+ 唯一有效的并发配置项
别再搜 parallel-downloads 或 --concurrency ——这些在 2.2+ 已弃用,设了也不生效。
- 真正起作用的只有:
http-max-concurrent-downloads - 全局设为 8 较稳妥:
composer config -g http-max-concurrent-downloads 8 - 超过 10 容易触发阿里云镜像限流,或本地
/tmp目录文件竞争 - 该参数只影响
composer install,对composer update几乎无加速效果
换国内镜像源才是提速关键
并发只是“同时发请求”,如果每个请求都卡在 DNS 解析、TLS 握手或跨洋路由上,开 10 个线程反而比 1 个更慢。
- 全局配置阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 换源后必须清缓存:
composer clear-cache,否则旧元数据仍回源请求 - 验证是否生效:
composer config -g repo.packagist输出应明确包含对应 URL,不能是null或空值 - 南方用户可试腾讯云:
https://mirrors.cloud.tencent.com/composer/
验证并行是否真在跑
别信“装了就快”,要看日志动态行为。
- 运行
composer install -vvv,观察输出是否出现多行Downloading (7/42)并快速跳变(如几秒内从 5/42 到 12/42) - 若始终单行打印、长时间停在某个包不动,说明镜像未生效或被限流,不是并发没开
-
composer global show里若还显示hirak/prestissimo,说明插件残留,会干扰新版调度逻辑
最常被忽略的一点:CI/CD 中不加 --no-autoloader --no-scripts,哪怕并发调到 10,一半时间也耗在生成 autoload 和执行 post-install-cmd 上。











