Composer安装过程卡住不动怎么办 解决网络超时问题技巧【排错】

1次阅读

composer卡住本质是网络问题,需优先切国内镜像源、配gitHub Token、调高php超时阈值;私有包需设Git代理或改httpS克隆;windows长路径问题则关杀软、提权或禁用符号链接。

Composer安装过程卡住不动怎么办 解决网络超时问题技巧【排错】

Composer install 卡在 Downloading...Cloning... 怎么办

本质是网络请求超时或被拦截,不是 Composer 本身故障。国内直连 Packagist 官方源(https://packagist.org)成功率极低,尤其涉及 Git 克隆私有包、下载 ZIP 归档或访问 github API 时,常卡在 Downloading https://api.github.com/...Cloning into '/path/to/vendor/xxx'...

优先验证是否真卡住:执行 composer install -v 查看最后输出的 URL;若 60 秒无新日志,基本可判定超时。

  • 临时改用国内镜像源(推荐):运行 composer config -g repo.packagist composer https://packagist.phpcomposer.com(已停用)或更稳定的 composer config -g repo.packagist composer https://packagist.proxy.tencent.com
  • 若项目含私有 Git 包,还需配置 Git 协议代理:设置环境变量 GIT_ssh_COMMAND="ssh -o ConnectTimeout=10 -o ServerAliveInterval=30",或改用 HTTPS 克隆(在 composer.json 中把 "git@github.com:user/repo.git" 换成 "https://github.com/user/repo.git"
  • 跳过平台检查和脚本执行可缩短等待时间:composer install --no-scripts --no-plugins --ignore-platform-reqs

composer create-project 卡在 Installing dependencies 阶段

该阶段本质是静默执行 composer install,但默认不输出详细日志,容易误判为“没反应”。实际可能正卡在下载某个依赖的 ZIP 包。

  • -vvv 参数强制输出完整过程:composer create-project laravel/laravel myapp -vvv,观察卡在哪条 GET 请求
  • 若卡在 https://api.github.com/repos/xxx/xxx/zipball/xxx,说明 GitHub API 调用失败 —— 此时需配置 GitHub Token:在 ~/.composer/auth.json 中添加 {"github-oauth": {"github.com": "your_token_here"}},Token 可在 GitHub Settings → Developer settings → Personal access tokens 创建(勾选 repo 权限)
  • 避免使用 --prefer-source:它强制走 Git 克隆,比 --prefer-dist(下 ZIP)更容易因 SSH/Git 超时卡死

PHP curl 超时导致 Composer update 失败

Composer 底层用 PHP 的 cURL 扩展发请求,默认超时值太短(通常 30–60 秒),而大包下载或弱网环境下极易触发 cURL Error 28: Operation timed out

  • 增大 cURL 超时:在 php.ini 中调整 curl.cainfo(确保证书路径正确)并增加 default_socket_timeout = 300;也可临时用命令行覆盖:php -d default_socket_timeout=300 /usr/bin/composer update
  • 禁用 ssl 验证(仅调试用!):composer config -g secure-http false,同时确保 openssl.cafilephp.ini 中指向有效证书 bundle(如 /etc/ssl/certs/ca-certificates.crt
  • 换用 http-proxy(如公司内网):composer config -g http-proxy http://proxy.company.com:8080,注意不要漏掉协议头 http://

Windows 下 composer install 卡在 Generating autoload files

这不是网络问题,而是 Windows 文件系统对长路径/符号链接处理异常,尤其在启用 WSL 或 docker Desktop 的环境中。Composer 会尝试生成大量 vendor/autoload_*.php 文件,NTFS 权限或防病毒软件可能中途阻塞。

  • 关闭实时杀毒扫描(如 Windows Defender 的“实时保护”),或把项目目录加入排除列表
  • 以管理员身份运行终端(CMD/PowerShell),避免权限不足导致文件写入卡顿
  • 删掉 vendorcomposer.lock 后重试:rm -rf vendor composer.lock && composer install --no-dev(PowerShell 用 Remove-Item -Recurse -Force vendor, composer.lock
  • 若仍卡住,尝试禁用符号链接:composer config -g use-symlinks false

国内网络环境下 Composer 卡住,90% 是 DNS 解析、HTTPS 连接或 GitHub API 限流导致,不是重装或升级就能解决。真正有效的动作只有三类:切镜像源、配 GitHub Token、调高 PHP 网络超时阈值。其他“清缓存”“重装 Composer”操作几乎无效。

text=ZqhQzanResources