第一行downloading才是真实请求地址,用composer install -vvv 2>&1 | grep -m1 "downloading"过滤;若无匹配则卡在解析阶段,需检查镜像配置、缓存及项目级repositories覆盖问题。

composer install -vvv 输出里看不到真实请求地址怎么办
只看 composer install -vvv 的终端输出,容易被中间日志干扰,第一行 Downloading 才是真实发起的请求地址。但默认输出太长,关键信息会被刷走。
正确做法是过滤出首条下载请求:
-
composer install -vvv 2>&1 | grep -m1 "Downloading"—— Linux/macOS 下直接抓第一行 -
composer install -vvv 2>&1 | findstr /C:"Downloading" | head -n 1—— Windows PowerShell 环境等效命令 - 如果没匹配到,说明根本没走到下载阶段,卡在了
Resolving dependencies或Loading composer repositories,此时要查依赖冲突或镜像配置
为什么 -vvv 日志里全是 packagist.org 却配了阿里云镜像
这代表镜像根本没生效,不是网络慢,是配置被跳过。常见原因有三个:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 项目根目录
composer.json里存在"repositories"字段(哪怕只是空数组[]),会彻底屏蔽全局镜像 -
composer config -g repo.packagist输出为空、null或仍是https://packagist.org,说明配置根本没写进去——漏了composertype 参数,或 URL 缺尾部/ - CI/CD 或宝塔环境用的是
www用户,但你用root配的全局配置,~/.composer/config.json路径不对人
日志卡在 “Resolving dependencies” 不动怎么判断是循环依赖
CPU 拉满、无网络请求、持续超 30 秒不动,且错误里反复出现类似 Package a depends on b, which depends on a 的描述,基本就是循环依赖。
验证方式很直接:
- 运行
composer update --dry-run -v,看末尾几行是否在重复同一路径(比如foo → bar → foo) - 执行
composer depends --tree vendor/package-name,若输出中出现自身两次(如myapp/core ← myapp/api ← myapp/core),闭环确认 - 临时注释掉
composer.json中全部require-dev条目再试,很多循环来自autoload里误写的../src/路径
开启 -vvv 后报 JSON decode error 或 file_put_contents 错误怎么办
这不是 PHP 语法问题,是镜像返回了乱码、BOM 头或 HTML 页面(比如人机验证页)。这类错误本质是元数据损坏,必须清缓存+删 lock 文件。
- 先执行
composer clear-cache,确认看到Clearing cache (cache-dir):和Clearing cache (cache-vcs):两行 - 手动删掉
composer.lock和vendor/——composer.lock里硬编码了旧 provider 地址,不清它就会一直重试失败路径 - 用
curl -I https://mirrors.aliyun.com/composer/packages.json验证镜像可用性:必须返回HTTP/2 200,若返回HTTP/1.1 302或 HTML 内容,说明该镜像不适合自动化场景










