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

How to install gmp extension for php 7.2 using MAMP on OSX

How to install gmp extension for php 7.2.1 using MAMP on OSX?

我正在尝试使用带 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 扩展的经验并愿意帮助我?

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

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

您需要 Xcode 和 homebrew,以安装编译器工具链、gmp 库和 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

将扩展加载配置添加到 /Applications/MAMP/bin/php/php7.2.8/conf 中的 php.ini:

extension=gmp.so

现在这行得通了:

/Applications/MAMP/bin/php/php7.2.8/bin/php composer.phar require mdanter/ecc

这是我在 2020

中的做法

从源下载 php https://github.com/php/php-src/releases 选择与您拥有的 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

我运行进入错误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