20

如何在 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依赖包,所以我尝试运行以下命令。

命令运行:

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 扩展并愿意帮助我?

注意:我不是一个非常有经验的 Web 开发人员,我主要创建 iOS 应用程序并且我想在 php 中生成一个令牌,所以我可以访问 Apple Music Kit API 资源。

4

3 回答 3

21

这是我在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.4.1/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

于 2020-01-30T08:50:12.377 回答
16

您必须从 php 源代码构建 gmp 扩展。

你需要 Xcode 和homebrew来安装编译器工具链、gmp lib 和autoconf

brew install autoconf gmp

由于我的 MAPP 附带 php 7.2.8,我将使用这个 php 版本作为示例,您可以升级您的 MAPP 安装或替换与 7.2.1 相关的版本。下载并解压 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.iniin /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
于 2018-09-28T09:03:04.547 回答
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
于 2021-03-20T16:26:05.930 回答