Composer install/update 卡在 downloading 阶段主因是默认镜像源响应慢或连接不稳定,应换用阿里云或清华镜像源,配合 --prefer-dist、清缓存及调高 COMPOSER_MAX_PARALLEL 至10。
Composer install/update 卡在 downloading 阶段怎么办
不是网络问题,大概率是默认镜像源响应慢或连接不稳定。Composer 本身不支持多线程下载,所谓“开启多线程”是误传——实际能做的只有换源、调并发数、关校验这三件事。
怎么换国内镜像源(阿里云 / 清华 / 华为)
官方 packagist.org 域名在国内解析和连接都容易超时,必须切到国内镜像。注意:不是所有镜像都实时同步,阿里云和清华目前最稳。
全局设置(推荐):
仅当前项目:
华为源已停止服务,
现在会 302 跳转回 packagist.org,别再用
为什么
还是慢?检查这几个参数
换源后仍卡顿,常见原因是默认行为太保守:它会逐个包验证签名、解压、写入 vendor,且并发请求数默认只有 2。
Composer 2.9.6
Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。
下载
关掉哈希校验(仅开发环境):
,其中
强制走压缩包而非 git clone,快很多
提高并发数(Composer 2.2+ 支持):
,
默认是 5,设到 10 已足够,再高没意义,还可能触发镜像限流
避免重复解压:
再重试,旧缓存损坏会导致反复下载失败重试
遇到
怎么办
这是典型的 DNS 或 TLS 握手失败,不是带宽问题。镜像源地址没错,但 PHP 的 OpenSSL 扩展或系统 CA 证书可能过期。
先确认 PHP 是否用了系统 curl:
,如果
显示空或老旧(如 OpenSSL 1.0.2),就得升级 PHP 或重装 curl
临时绕过 SSL 验证(仅调试):
,但别提交到 CI 或生产环境
Windows 用户常见坑:Git Bash 下
命令实际调的是 Windows 版 PHP,而 PATH 里可能混着 WSL 的 PHP,导致 SSL 根证书路径错乱;直接在 cmd 中运行更可靠
真正影响速度的从来不是“要不要多线程”,而是源是否可用、PHP 的网络栈是否干净、缓存是否有效。换源 +
+ 清缓存,覆盖 90% 的慢场景。剩下那 10%,大概率是公司代理或防火墙在中间做深度检测。
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/composer installcomposer install --no-scripts --no-plugins --no-interaction --prefer-dist --optimize-autoloader--prefer-distCOMPOSER_PROCESS_TIMEOUT=3000 COMPOSER_MAX_PARALLEL=10 composer installCOMPOSER_MAX_PARALLELcomposer clear-cachefile could not be downloaded: failed to open stream: Connection timed outphp -r "print_r(curl_version());"ssl_versionexport COMPOSER_DISABLE_TLS=truecomposer--prefer-dist