运行 composer diagnose 可检查 Composer 配置、PHP 版本、composer.json 合法性、vendor 权限、HTTPS 连通性及 CA 证书等,并支持 -v 和 --no-ansi 参数增强输出。

直接运行 composer diagnose 即可查看 Composer 的诊断信息。它会自动检查常见配置、权限、网络连通性及环境兼容性等问题,并给出清晰的通过或失败提示。
基础用法:运行 diagnose 命令
在项目根目录或任意路径下,执行:
-
composer diagnose—— 默认检查全部项目相关项(如 composer.json 是否合法、vendor 目录权限、CA 证书等) -
composer diagnose -v—— 显示更详细的输出,包括具体检测步骤和路径信息 -
composer diagnose --no-ansi—— 禁用彩色输出,适合日志记录或 CI 环境
诊断内容涵盖哪些方面?
该命令会依次检查以下关键项:
- Composer 是否能正常加载自身(autoload、类存在性)
- 当前 PHP 版本是否满足最低要求(默认 ≥7.2.5,新版可能更高)
- composer.json 文件语法是否合法(JSON 格式、必需字段等)
- vendor 目录是否存在且可写(尤其影响 install/update)
- HTTPS 连接是否可用(测试 packagist.org 的 SSL 访问)
- CA 证书路径是否正确(避免 “SSL certificate problem” 错误)
常见问题与对应建议
如果 diagnose 报出警告或错误,可参考以下处理方式:
-
“The openssl extension is missing” → 启用 PHP 的 openssl 扩展(修改 php.ini 中
extension=openssl) - “The json extension is missing” → 启用 json 扩展(多数 PHP 安装已内置,确认未被注释)
-
“You are running Composer with SSL/TLS protection disabled” → 检查是否设置了
COMPOSER_DISABLE_TLS=1,应移除该环境变量 -
“The CA bundle (…/cacert.pem) does not exist” → 设置正确的 cafile 路径:
composer config -g cafile /path/to/cacert.pem -
“The vendor directory is not writable” → 修改权限:
chmod -R u+rw vendor/或检查是否被只读挂载
配合其他命令快速定位问题
diagnose 是初步排查工具,遇到复杂问题可组合使用:
-
composer show --platform—— 查看当前 PHP 及扩展版本 -
composer config -g—— 检查全局配置(特别是 repo、cafile、proxy) -
php -m | grep -i "openssl\|json"—— 快速确认扩展是否启用 -
curl -I https://packagist.org/packages.json—— 手动测试 HTTPS 连通性










