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

Llo*_*zer 13 php mamp php-extension composer-php 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
Run Code Online (Sandbox Code Playgroud)

我想我错过了mdanter/ecc依赖包,所以我尝试运行以下命令.

命令运行:

composer require mdanter/ecc
Run Code Online (Sandbox Code Playgroud)

输出:

mdanter/ecc v0.5.0 requires ext-gmp * -> the requested PHP extension gmp is missing from your system
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一切我能找到的研究这个错误并与MAMP相关的内容.但我无法解决这个问题.这里有没有人有专门为MAMP添加gmp php扩展的经验,并愿意帮助我吗?

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

abd*_*hid 18

这是我做的 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
Run Code Online (Sandbox Code Playgroud)

然后运行 ​​phpize 命令

/Applications/MAMP/bin/php/php7.4.1/bin/phpize
Run Code Online (Sandbox Code Playgroud)

第 5 步:

./configure --with-php-config=/Applications/MAMP/bin/php/php7.4.1/bin/php-config
Run Code Online (Sandbox Code Playgroud)

它输出以下

然后

make
Run Code Online (Sandbox Code Playgroud)

然后

make install
Run Code Online (Sandbox Code Playgroud)

它现在安装。

您可以通过以下方式确认

/Applications/MAMP/bin/php/php7.4.1/bin/php -i | grep gmp
Run Code Online (Sandbox Code Playgroud)

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

  • 恕我直言,这应该是公认的答案。谢谢,这是唯一对我有用的解决方案。 (4认同)

geo*_*xsh 14

你必须从php源构建gmp扩展.

你需要Xcode和自制软件,安装编译器工具链,gmp lib和autoconf:

brew install autoconf gmp
Run Code Online (Sandbox Code Playgroud)

由于我的MAPP附带了php 7.2.8,我会以这个php版本为例,你可以升级你的MAPP安装或替换与7.2.1相关的版本.下载并解压缩php(7.2.8)源代码到dir,然后根据你的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
Run Code Online (Sandbox Code Playgroud)

扩展配置添加php.ini/Applications/MAMP/bin/php/php7.2.8/conf:

extension=gmp.so
Run Code Online (Sandbox Code Playgroud)

现在这会工作:

/Applications/MAMP/bin/php/php7.2.8/bin/php composer.phar require mdanter/ecc
Run Code Online (Sandbox Code Playgroud)

  • 以上 4 行命令对我不起作用,我的 GMP 安装在 `/usr/local/Cellar/gmp/6.1.2_2` 中,这个命令是 `/Applications/MAMP/bin/php/php7.2.8/bin/phpize ./配置 --with-php-config=/Applications/MAMP/bin/php/php7.2.8/bin/php-config` 不工作:( (2认同)