Composer 2.2+ 已原生支持并行下载,无需且不可安装 Prestissimo;用户应卸载 hirak/prestissimo,确认版本后执行 composer global remove hirak/prestissimo。

Composer 2.x 用户:别装 Prestissimo,它不工作
Composer 2.2+ 已原生支持并行下载,prestissimo 在 Composer 2 环境下不仅无效,还可能引发冲突或静默降级。运行 composer --version 确认是 2.x 后,请直接卸载:composer global remove hirak/prestissimo。
常见错误现象:装了插件但 composer install -vvv 日志里仍单行逐个打印 Downloading —— 这不是 Prestissimo 失效,而是它根本没被加载(Composer 2 自动忽略不兼容插件)。
Composer 1.x 用户:Prestissimo 安装后不加速?先查这三件事
装了 hirak/prestissimo 却没提速,大概率卡在这三个硬性条件上:
- PHP
curl扩展未启用:运行php -m | grep curl,无输出则需启用扩展 - GitHub API 被限流:没配
github-oauth时,每小时仅 60 次请求,中途会卡住;补上:composer config -g github-oauth.github.com YOUR_TOKEN - 源站太慢或不兼容:默认走
packagist.org境外节点,国内用户务必切镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
注意:composer clear-cache 必须在换源/加 token 后执行,否则旧缓存仍走原路径。
并发数调多少才合适?看网络和源站响应能力
默认并发数不是越多越好,盲目设高反而触发限流或 DNS 拥塞:
-
COMPOSER_MAX_PARALLEL_HTTP=8对多数宽带有效,但 GitHub 镜像常在并发 ≥6 时返回403 rate limit exceeded - 企业内网或代理环境建议压到
2–3:COMPOSER_MAX_PARALLEL_HTTP=3 composer install - 若用私有 Satis 或 Artifactory,先确认其是否支持并发
HEAD请求;不支持则并发会被自动降级为串行
验证是否真并发:加 -vvv 看日志,出现类似两行 Downloading https://... 几乎同时打印,才算生效。
Composer 2 的并行机制其实更聪明,但依赖前提
Composer 2 不靠插件,而是调度 HTTP 连接池 + 并行触发 ZIP 下载,但只在特定条件下启用:
- 仅
composer install(非update)且存在干净的composer.lock时生效 - 必须有
curl_multi支持;若禁用了ext-curl,会无声退化为串行 - 自定义仓库若返回 302 跳转而非直连 ZIP URL,部分包会跳过并行流程
- 磁盘 I/O 瓶颈(如 NFS 卷、机械硬盘)下,并行解压可能比串行更慢
真正影响速度的,往往不是“有没有并行”,而是“能不能稳定拿到 ZIP”。所以镜像源、OAuth Token、缓存状态,比调并发数重要得多。










