You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

命令行执行PHP提示GMP未找到?PHP7.1-FPM环境问题排查

问题根源分析:CLI与PHP-FPM的环境差异

这问题其实很典型,核心原因就是你命令行里调用的PHP环境,和WordPress运行依赖的PHP-FPM环境,压根不是同一个(或者它们的扩展配置完全不匹配)。

我来拆解下具体原因:

1. 两套独立的PHP运行环境

很多服务器上,PHP CLI(命令行模式)和PHP-FPM(网页服务模式)是分开安装、独立配置的:

  • 可能版本不同:你命令行敲php -v得到的是其他PHP版本,而WordPress用的PHP-FPM是7.1,版本差异导致扩展支持不一样;
  • 就算版本相同,它们的配置文件(php.ini)和扩展加载目录也可能完全分开。比如FPM的php.ini里已经开启了gmp扩展,但CLI的php.ini里压根没加extension=gmp.so这行配置。

2. 扩展加载的配置差异

就算是同一个PHP版本,CLI和FPM的扩展加载逻辑也可能不同:

  • CLI模式下,PHP会读取自己专属的php.ini文件(可以用php --ini查看具体路径);
  • PHP-FPM则会读取对应服务配置里指定的php.ini文件(你可以在WordPress里新建一个测试文件,输出phpinfo(),找到「Loaded Configuration File」项查看路径)。
    大概率FPM的配置文件里已经启用了gmp扩展,而CLI的配置文件里完全没开启这个扩展。

快速验证方法

  1. 对比版本:命令行执行php -v,同时在WordPress里查看phpinfo()的PHP版本,确认二者是否一致;
  2. 检查扩展:命令行执行php -m,看输出列表里有没有gmp;再对照phpinfo()里的「gmp」模块是否存在;
  3. 对比配置文件路径:用php --ini查看CLI的配置文件路径,和phpinfo()里FPM的配置文件路径做对比。

解决思路

  • 如果是版本不同:给CLI安装对应PHP7.1版本的gmp扩展(比如Ubuntu环境下执行sudo apt install php7.1-gmp);
  • 如果是配置问题:找到CLI的php.ini文件,添加extension=gmp.so(Windows环境替换为extension=gmp.dll),之后重启命令行或相关服务;
  • 临时方案:直接调用PHP-FPM对应的CLI二进制文件执行脚本,比如如果FPM用的是php7.1,就敲php7.1 -f file.php试试。

内容的提问来源于stack exchange,提问作者Sam Tyurenkov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:24:43