web-dev-qa-db-fra.com

Comment installer l'extension gmp pour php 7.2 en utilisant MAMP sur OSX

Comment installer l'extension gmp pour php 7.2.1 en utilisant MAMP sur OSX?

J'essaie de chiffrer un jeton avec php et cette bibliothèque ( lcobucci/jwt ) en utilisant l'algorithme de signature numérique à courbe elliptique (ECDSA) avec la courbe P-256 et l'algorithme de hachage SHA-256.

erreur lors de l'exécution du script php:

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

J'ai pensé qu'il me manquait le mdanter/ecc package dependicy, j'ai donc essayé d'exécuter la commande suivante.

commande en cours d'exécution:

composer require mdanter/ecc

sortie:

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

J'ai essayé tout ce que je pouvais trouver en recherchant cette erreur et lié à MAMP. Mais je n'ai pas pu résoudre ce problème. Y a-t-il quelqu'un ici qui a de l'expérience dans l'ajout de l'extension gmp php à MAMP et qui est prêt à m'aider?

Remarque: Je ne suis pas un développeur Web très expérimenté, je crée principalement des applications iOS et je veux générer un jeton en php, donc je peux accéder aux ressources de l'API Apple Music Kit).

13
Lloyd Keijzer

vous devez construire l'extension gmp à partir du code source php.

vous avez besoin de Xcode et homebrew , pour installer la chaîne d'outils du compilateur, gmp lib et autoconf:

brew install autoconf gmp

comme mon MAPP est livré avec php 7.2.8, j'utiliserais cette version php comme exemple, vous pouvez mettre à niveau votre installation MAPP ou remplacer la version liée à 7.2.1. Télécharger et décompressez le code source de php (7.2.8) dans un répertoire, puis configurez l'environnement de build contre votre installation php et construisez l'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

ajoutez la configuration de chargement de l'extension à php.ini dans /Applications/MAMP/bin/php/php7.2.8/conf:

extension=gmp.so

maintenant cela fonctionnerait:

/Applications/MAMP/bin/php/php7.2.8/bin/php composer.phar require mdanter/ecc
12
georgexsh