phpcomposer-phpmampphp-extensionphp-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?

I'm trying to encrypt a token with php and this library(lcobucci/jwt) using the Elliptic Curve Digital Signature Algorithm (ECDSA) with the P-256 curve and the SHA-256 hash algorithm.

error when running php script:

Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)
Class 'Mdanter\Ecc\EccFactory' not found

I figured that I'm missing the mdanter/ecc dependicy package, so I tried running the following command.

command running:

composer require mdanter/ecc

output:

mdanter/ecc v0.5.0 requires ext-gmp * -> the requested PHP extension gmp is missing from your system

I've tried everything I could find researching this error and related to MAMP. But I couldn't solve this problem. Is there anyone here who has experience in adding the gmp php extension to MAMP specificly and is willing to help me out?

Note: I'm not a very experienced web developer, I mostly create iOS apps and I want to generate a token in php, so I can access the Apple Music Kit API resources.


Solution

  • Here is how i did in 2020

    Download php from source https://github.com/php/php-src/releases pick the version which is matching with MAMP PHP version you have.

    Copy the extension you want. Here we are copying gmp directory.

    Paste it to /Applications/MAMP/bin/php/php7.4.1/include/php/ext

    (Make sure to move to your MAMP php version directory)

    cd /Applications/MAMP/bin/php/php7.4.1/include/php/ext/gmp
    

    Then run phpize command

    /Applications/MAMP/bin/php/php7.4.1/bin/phpize
    

    Step 5:

    ./configure --with-php-config=/Applications/MAMP/bin/php/php7.4.1/bin/php-config
    

    It outputs following

    Then

    make
    

    Then

    make install
    

    Its installed now.

    You can confirm it by

    /Applications/MAMP/bin/php/php7.4.1/bin/php -i | grep gmp
    

    gmp support => enabled

    If you didn't see gmp support enabled, you may need to add following to php.ini.

    This command will show you which php.ini file is used by MAMP php

    /Applications/MAMP/bin/php/php7.4.1/bin/php -i | grep "php.ini"

    Add extension=gmp.so

    Restart MAMP :)

    Posted here with screenshots, https://mycodde.blogspot.com/2020/01/install-php-gmp-extension-in-mamp-2020.html