Composer下载太慢怎么办 Composer开启多线程下载【技巧】

2次阅读

composer install/update 卡在 downloading 阶段主因是默认镜像源响应慢或连接不稳定,应换用阿里云或清华镜像源,配合 –prefer-dist、清缓存及调高 composer_max_parallel 至10。

Composer下载太慢怎么办 Composer开启多线程下载【技巧】

Composer install/update 卡在 downloading 阶段怎么办

不是网络问题,大概率是默认镜像源响应慢或连接不稳定。Composer 本身不支持线程下载,所谓“开启多线程”是误传——实际能做的只有换源、调并发数、关校验这三件事。

怎么换国内镜像源(阿里云 / 清华 / 华为)

官方 packagist.org 域名在国内解析和连接都容易超时,必须切到国内镜像。注意:不是所有镜像都实时同步,阿里云和清华目前最稳。

  • 全局设置(推荐):composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
  • 仅当前项目:composer config repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/
  • 华为源已停止服务,https://repo.huaweicloud.com/repository/php/ 现在会 302 跳转回 packagist.org,别再用

为什么 composer install 还是慢?检查这几个参数

换源后仍卡顿,常见原因是默认行为太保守:它会逐个包验证签名、解压、写入 vendor,且并发请求数默认只有 2。

  • 关掉哈希校验(仅开发环境):composer install --no-scripts --no-plugins --no-interaction --prefer-dist --optimize-autoloader,其中 --prefer-dist 强制走压缩包而非 git clone,快很多
  • 提高并发数(Composer 2.2+ 支持):COMPOSER_PROCESS_TIMEOUT=3000 COMPOSER_MAX_PARALLEL=10 composer installCOMPOSER_MAX_PARALLEL 默认是 5,设到 10 已足够,再高没意义,还可能触发镜像限流
  • 避免重复解压:composer clear-cache 再重试,旧缓存损坏会导致反复下载失败重试

遇到 file could not be downloaded: failed to open stream: Connection timed out 怎么办

这是典型的 DNS 或 TLS 握手失败,不是带宽问题。镜像源地址没错,但 PHP 的 Openssl 扩展或系统 CA 证书可能过期。

  • 先确认 PHP 是否用了系统 curlphp -r "print_r(curl_version());",如果 ssl_version 显示空或老旧(如 OpenSSL 1.0.2),就得升级 PHP 或重装 curl
  • 临时绕过 SSL 验证(仅调试):export COMPOSER_DISABLE_TLS=true,但别提交到 CI 或生产环境
  • windows 用户常见坑:Git bashcomposer 命令实际调的是 Windows 版 PHP,而 PATH 里可能混着 WSL 的 PHP,导致 SSL 根证书路径错乱;直接在 cmd 中运行更可靠

真正影响速度的从来不是“要不要多线程”,而是源是否可用、PHP 的网络是否干净、缓存是否有效。换源 + --prefer-dist + 清缓存,覆盖 90% 的慢场景。剩下那 10%,大概率是公司代理或防火墙在中间做深度检测。

text=ZqhQzanResources