代码之家  ›  专栏  ›  技术社区  ›  Lloyd Keijzer

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

  •  12
  • Lloyd Keijzer  · 技术社区  · 7 年前

    如何使用安装PHP 7.2.1的gmp扩展 MAMP 在OSX上?

    我试图用PHP和这个库加密一个令牌( lcobucci/jwt )使用椭圆曲线数字签名算法(ECDSA)和P-256曲线和SHA-256哈希算法。

    运行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添加gmp-php扩展方面有经验并且愿意帮助我?

    注意:我不是一个经验丰富的Web开发人员,我主要创建iOS应用程序,我想用PHP生成一个令牌,这样我就可以访问Apple Music Kit API资源。

    1 回复  |  直到 6 年前
        1
  •  10
  •   georgexsh    6 年前

    您必须从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)源代码解包到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
    

    将扩展加载配置添加到 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