安装PHP-GMP扩展时提示需GNU MP Library 4.2及以上版本如何解决
安装PHP-GMP扩展报错:GNU MP Library version 4.2 or greater required
我在安装PHP-GMP扩展时遇到的问题。
我执行的操作步骤如下:
- 使用brew下载安装gmp,执行命令:
brew install autoconf gmp - 下载我正在使用的7.3.24版本PHP源码,从中提取GMP扩展文件
- 将Gmp目录复制到
/Applications/MAMP/bin/php/php7.3.24/include/php/ext路径下 - 进入上述目录,执行
phpize命令 - 执行配置命令:
./configure --with-php-config=/Applications/MAMP/bin/php/php7.3.24/bin/php-config
按下回车后执行到中途,抛出如下报错:
configure: error: GNU MP Library version 4.2 or greater required.
我之前曾偶然解决过这个问题,但已经记不清具体操作,只记得当时从官网下载了gmp的.tar压缩包,后续操作没起效。
我对./configure、make、make install这类操作并不熟悉,不清楚背后逻辑,只能尝试各种操作碰运气:下载官方.tar压缩包解压后进入目录,依次执行了:
- ./configure
- make && make check && make install
我还参照相关教程执行了如下环境变量配置命令,也没有效果:
export CPPFLAGS="-I/usr/local/Cellar/gmp/include" export LDFLAGS="-L/usr/local/Cellar/gmp/lib"
甚至我尝试在./configure命令后添加--prefix=/usr/local/Cellar参数,依然没有解决问题。
这个问题和我之前发布的另一篇提问相关,当时./configure还能正常运行,现在问题反而更严重了。
补充说明:我推测问题是执行brew doctor和brew cleanup命令后出现的,这两个操作应该是删除了我之前配置好的相关文件,导致问题复现。
解决方案
这个报错是编译时无法定位到brew安装的gmp库路径导致的,brew cleanup后会清除旧版本的Cellar路径软链,你之前写死的Cellar路径自然会失效,按以下步骤操作即可解决:
- 进入GMP扩展所在目录,先清除之前的编译缓存:
make clean
- 直接在configure命令中指定gmp的动态路径,不需要单独配置环境变量:
./configure --with-php-config=/Applications/MAMP/bin/php/php7.3.24/bin/php-config --with-gmp=$(brew --prefix gmp)
这里用$(brew --prefix gmp)自动获取brew安装gmp的实际路径,不管是Intel芯片还是Apple芯片的Mac都能适配,不会因为版本更新或者cleanup操作失效。
3. 编译安装扩展:
make && make install
- 打开对应PHP版本的php.ini文件,新增一行配置:
extension=gmp.so
- 重启MAMP服务,查看phpinfo即可看到GMP扩展已生效。
内容的提问来源于stack exchange,提问作者Diego
相关产品推荐
相关产品推荐

