【问题标题】:How to install gmp extension for php 7.2 using MAMP on OSX如何在 OSX 上使用 MAMP 为 php 7.2 安装 gmp 扩展
【发布时间】:2018-10-30 07:40:28
【问题描述】:

如何在 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 扩展的经验并愿意帮助我的人?​​

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

【问题讨论】:

  • 请问有人有回应吗?我尝试了所有方法,但没有最新的...

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


【解决方案1】:

您必须从 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 in /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

【讨论】:

  • 4 行以上的命令对我不起作用,我的 GMP 安装在 /usr/local/Cellar/gmp/6.1.2_2 中,此命令 /Applications/MAMP/bin/php/php7.2.8/bin/phpize ./configure --with-php-config=/Applications/MAMP/bin/php/php7.2.8/bin/php-config 不起作用:(
  • 这些命令(路径)用于 MAMP 安装,而不是自制软件。
  • @SaurabhMistry - 您需要从描述中的链接 (php.net/get/php-7.2.8.tar.bz2/from/a/mirror) 下载 7.2.8 的新版本,然后从新版本的 ext/gmp 文件夹中运行终端命令。
【解决方案2】:

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

【讨论】:

  • 这应该是接受的答案恕我直言。谢谢,这是唯一对我有用的解决方案。
  • 我写了答案。一年后,当我有同样的问题时,它帮助了我:)
【解决方案3】:

我在运行配置命令时遇到了错误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-09-17
    • 2020-01-03
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    相关资源
    最近更新 更多