composer install 因平台检查失败时,需按错误提示的 ext-xxx 扩展名,用 php -m 和 php --ini 确认 CLI 环境是否启用;不同系统启用扩展步骤各异,忽略验证或混淆 CLI 与 Web 配置是常见问题。

因为 composer install 默认启用平台检查(platform requirements),它会严格比对 composer.json 中声明的 ext-* 依赖和当前 CLI 环境实际加载的扩展,任一缺失即中止安装。
错误信息里写的 ext-xxx 就是真实缺失项
报错末尾明确标出扩展名,例如:Root composer.json requires PHP extension ext-redis but it is missing from your system. —— 这里的 ext-redis 就是你要解决的目标。别凭印象猜,ext-intl、ext-fileinfo、ext-openssl 这些常被忽略但实际关键的扩展,必须按提示逐个确认。
php -m 和 php --ini 才是验证起点
Composer 检查走的是 CLI 模式,跟浏览器里 phpinfo() 完全无关。必须用这两个命令定位真实环境:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
php --ini查看 CLI 加载的php.ini路径(注意Loaded Configuration File行) -
php -m | grep redis(把redis换成你要查的扩展名)确认是否在已启用列表里 - 如果
php --ini显示Loaded Configuration File: (none),说明 PHP 根本没加载配置文件,得先补一份php.ini
不同系统启用扩展的操作差异很大
装了包不等于启用了扩展,中间常漏掉启用或重启步骤:
- Ubuntu/Debian:
sudo apt install php-redis后,还得sudo phpenmod redis(仅apt不自动启用) - macOS + Homebrew:装完
brew install php@8.2-redis,要手动往对应php.ini里加extension=redis.so - 宝塔面板:进「软件商店 → PHP 设置 → 安装扩展」点开
fileinfo,装完必须点「重载配置」,否则php -m看不到 - Docker:不能只
RUN apk add php82-pecl-redis,还得RUN docker-php-ext-enable redis或写进docker-php-ext-install
--ignore-platform-reqs 只跳过检查,不解决运行时问题
加这个参数能让 composer install 过去,但项目很可能在后续执行时报 Call to undefined function:
-
composer install --ignore-platform-reqs:跳过所有扩展和 PHP 版本检查 -
composer install --ignore-platform-req=ext-gd:只忽略单个扩展,精准但风险依旧存在 - CI/CD 构建时若用此参数,上线后才发现
imagecreatefromjpeg()报错,就晚了
真正卡住的往往不是“怎么装”,而是装完没验证 CLI 环境是否生效,或者改了 Web 的 php.ini 却忘了 CLI 用的是另一份——每次操作后,务必用 php -m | grep xxx 在同一终端里再跑一遍确认。

















