如何在OSX上使用MAMP安装php 7.2.1的gmp扩展名?
我正在尝试使用带有P-256曲线和SHA-256哈希算法的椭圆曲线数字签名算法(ECDSA)使用php和此库(lcobucci/jwt)加密令牌。
运行php脚本时出现错误:
Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)
Class 'Mdanter\Ecc\EccFactory' not found
我认为我错过了mdanter/ecc
dependicy包,所以我尝试运行以下命令。
命令正在运行:
composer require mdanter/ecc
输出:
mdanter/ecc v0.5.0 requires ext-gmp * -> the requested PHP extension gmp is missing from your system
我已经尝试了所有我能找到的研究此错误并与MAMP相关的内容。但我无法解决这个问题。 这里是否有人有专门为MAMP添加gmp php扩展的经验并愿意帮助我?
注意:我不是一个非常有经验的网站开发人员,我主要创建iOS应用程序,我想在php中生成令牌,因此我可以访问Apple Music Kit API资源。
答案 0 :(得分:12)
这就是我在2020
中所做的
从源https://github.com/php/php-src/releases下载php,选择与您拥有的MAMP PHP版本匹配的版本。
复制所需的扩展名。在这里,我们正在复制gmp目录。
将其粘贴到/Applications/MAMP/bin/php/php7.4.1/include/php/ext
(确保移至MAMP php版本目录)
cd /Applications/MAMP/bin/php/php7.4.1/include/php/ext/gmp
然后运行phpize命令
/Applications/MAMP/bin/php/php7.4.1/bin/phpize
第5步:
./configure --with-php-config=/Applications/MAMP/bin/php/php7.2.8/bin/php-config
它输出以下内容
然后
make
然后
make install
现在已安装。
您可以通过以下方式进行确认
/Applications/MAMP/bin/php/php7.4.1/bin/php -i | grep gmp
gmp支持=>已启用
如果未启用gmp支持,则可能需要在php.ini中添加以下内容。
此命令将向您显示MAMP php使用哪个php.ini文件
/Applications/MAMP/bin/php/php7.4.1/bin/php -i | grep“ php.ini”
添加extension=gmp.so
重新启动MAMP:)
在这里发布了屏幕截图,https://mycodde.blogspot.com/2020/01/install-php-gmp-extension-in-mamp-2020.html
答案 1 :(得分:8)
您必须从php源代码构建gmp扩展。
您需要Xcode和homebrew,才能安装编译器工具链,gmp lib和autoconf
:
brew install autoconf gmp
由于我的MAPP随PHP 7.2.8一起提供,因此我将以该php版本为例,您可以升级MAPP安装或替换与7.2.1相关的版本。 Download并将php(7.2.8)源代码解压缩到一个目录,然后针对您的php安装配置构建环境并构建扩展名:
cd ext/gmp
/Applications/MAMP/bin/php/php7.2.8/bin/phpize
./configure --with-php-config=/Applications/MAMP/bin/php/php7.2.8/bin/php-config
make
make install
将扩展加载配置添加到php.ini
中的/Applications/MAMP/bin/php/php7.2.8/conf
:
extension=gmp.so
现在这可以工作:
/Applications/MAMP/bin/php/php7.2.8/bin/php composer.phar require mdanter/ecc
答案 2 :(得分:0)
我在运行配置命令时遇到错误 unable to locate gmp.h
我不得不使用 --with-gmp
标签来告诉 gmp 的好路径。
./configure --with-php-config=/Applications/MAMP/bin/php/php7.2.34/bin/php-config --with-gmp=/opt/homebrew/Cellar/gmp/6.2.1