如何在OSX上使用MAMP安装php 7.2的gmp扩展

时间:2018-05-20 13:42:30

标签: php composer-php mamp php-extension php-gmp

  

如何在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资源。

3 个答案:

答案 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