composer -vvv 是 Composer 唯一有效的实时排错入口,它直接输出全部安装细节(HTTP 请求、JSON 响应、依赖冲突、脚本参数)到 stderr,无需配置、不依赖环境,配合 2>&1 重定向方可 grep 分析。

直接用 composer -vvv 就能看到全部安装细节,不需要配置、不用改文件、不依赖环境——它是 Composer 唯一有效的实时排错入口。
为什么 composer install 卡住或失败,-vvv 才是真相探测器
Composer 没有“日志开关”或配置项来开启运行时日志。所谓“配置安装日志”,本质就是加 -vvv 参数。它会把所有 HTTP 请求、JSON 响应体、依赖冲突规则、脚本执行参数原样打到终端 stderr,而不是写进某个文件。
-
-v:只显示“正在加载仓库”“正在安装 monolog/monolog”这类进度提示 -
-vv:出现包名+版本号+命令路径,比如Executing command (/tmp): php -v -
-vvv:看到GET https://packagist.org/packages.json、json_decode() expects parameter 1 to be string, bool given这类真实上下文 - 别信
--dry-run -vvv:它跳过平台扩展检查(如ext-redis缺失时根本不报错),漏掉关键失败点
composer -vvv 输出必须重定向才能 grep 到有用信息
Composer 把所有 -vvv 输出都扔进 stderr,而 grep 默认只读 stdout。不重定向,等于白跑。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 查是否走镜像源:
composer install -vvv 2>&1 | grep "mirrors.aliyun.com" - 看脚本执行顺序:
composer install -vvv 2>&1 | grep "Executing script" - 确认包是否被拉取:
composer update -vvv 2>&1 | grep "monolog" - CI 或 Docker 中建议加
--no-ansi,避免颜色码污染解析:composer install -vvv --no-ansi 2>&1 | grep "Writing.*into cache"
本地 ~/.composer/log 文件对排错基本没用
Ubuntu/Debian 下的 ~/.composer/log 只记录极少量初始化错误(比如 config 加载失败),完全不包含 install 或 update 过程中的任何依赖解析、网络请求、脚本执行日志。它不是运行时日志,更像一个低频故障快照。
- 想保存一次完整调试过程?用重定向:
composer update -vvv --no-ansi 2>&1 > composer-debug.log - 想追加记录多次操作?用双尖括号:
composer install -vvv 2>&1 >> composer-run.log - 实时盯输出?开两个终端:
tail -f composer-debug.log+ 另一个跑命令 - 别去翻
~/.composer/config.json找日志开关——它根本没有这个字段
遇到 Failed to decode response 或 Your requirements could not be resolved,-vvv 是唯一解法
这类错误表面看是网络或版本问题,但真正原因往往藏在响应体里。比如 Failed to decode response 后面跟着的原始 HTTP body 是空、是 HTML(说明被墙或镜像挂了)、还是 malformed JSON,只有 -vvv 能暴露。
- 国内用户卡在下载?先
composer config -g repo.packagist composer https://packagist.phpcomposer.com换源,再跑-vvv看是否还卡在 GET -
Your requirements could not be resolved?-vvv会列出具体哪条依赖规则冲突,比如 “Package monolog/monolog has a PHP requirement incompatible with your PHP version” - PHP 版本不符时,
-vvv不会直接告诉你该装哪个版本,但会显示 Composer 尝试匹配的所有候选版本及其 PHP 约束,你能自己反推
最常被忽略的是:很多人以为要“配置日志”,其实只是忘了加 -vvv;更常被忽略的是:加了 -vvv 却没重定向 stderr,结果对着空屏反复 grep。

















