Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 847
Lloyd Keijzer Avatar asked May 20 '18 13:05

Lloyd Keijzer


2 Answers

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

like image 150
abdul rashid Avatar answered Oct 09 '22 19:10

abdul rashid


you have to build the gmp extension from the php source code.

you need Xcode and homebrew, to install compiler toolchain, gmp lib and autoconf:

brew install autoconf gmp

as my MAPP is shipped with php 7.2.8, I would use this php version as example, you could upgrade your MAPP installation or replace version related to 7.2.1. Download and unpack php(7.2.8) source code to a dir, then config the build environment against your php installation and build the extension:

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

add the extension loading config to php.ini in /Applications/MAMP/bin/php/php7.2.8/conf:

extension=gmp.so

now this would work:

/Applications/MAMP/bin/php/php7.2.8/bin/php composer.phar require mdanter/ecc
like image 31
georgexsh Avatar answered Oct 09 '22 20:10

georgexsh