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

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 install,COMPOSER_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 是否用了系统 curl:
php -r "print_r(curl_version());",如果ssl_version显示空或老旧(如 OpenSSL 1.0.2),就得升级 PHP 或重装 curl - 临时绕过 SSL 验证(仅调试):
export COMPOSER_DISABLE_TLS=true,但别提交到 CI 或生产环境 - Windows 用户常见坑:Git Bash 下
composer命令实际调的是 Windows 版 PHP,而 PATH 里可能混着 WSL 的 PHP,导致 SSL 根证书路径错乱;直接在 cmd 中运行更可靠
真正影响速度的从来不是“要不要多线程”,而是源是否可用、PHP 的网络栈是否干净、缓存是否有效。换源 + --prefer-dist + 清缓存,覆盖 90% 的慢场景。剩下那 10%,大概率是公司代理或防火墙在中间做深度检测。










