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

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.cafile在 php.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),避免权限不足导致文件写入卡顿
- 删掉
vendor和composer.lock后重试:rm -rf vendor composer.lock && composer install --no-dev(PowerShell 用Remove-Item -Recurse -Force vendor, composer.lock) - 若仍卡住,尝试禁用符号链接:
composer config -g use-symlinks false










