2
votes

Installation de PHP sur Amazon Linux 2 avec Argon2 activé

Je rencontre un problème avec l'activation d'Argon2 pour le hachage de mot de passe. Je construis PHP à partir de la source d'Amazon Linux 2 mais une fois la construction terminée et PHP compilé, la constante PASSWORD_ARGON2I n'est pas définie et l'algorithme n'est pas disponible.

J'ai essayé de nombreuses façons différentes de compilez PHP en utilisant différentes bibliothèques mais aucune d'entre elles ne me donne l'algorithme Argon2 dont j'ai besoin. Ci-dessous, je vais énumérer quelques étapes que j'ai prises:

1) Donner le drapeau --with-sodium

La compilation avec ce drapeau est terminée, mais l'exécution d'un test script qui inclut la fonction password_hash () montre que Argon2I n'est pas disponible.

2) Compilation avec l'indicateur --with-password-argon2 p>

La compilation échoue à cause d'une bibliothèque manquante qui peut être vue dans l'erreur ci-dessous.

checking for Argon2 support... yes
checking for Argon2 library... not found
configure: error: Please ensure the argon2 header and library are installed

À partir de là, je suppose qu'il me manque une bibliothèque requise pour que l'indicateur fonctionne, j'ai donc installé Libsodium . Essayer à nouveau a le même résultat.

3) Ensuite, j'installe quelques dépendances supplémentaires sur la recommandation d'un tutoriel. Ceux-ci sont: - argon2 - libargon2-0 - libargon2-0-dev

Cela me donne l'outil cli argon2 qui fonctionne, mais la compilation de PHP à nouveau ne fonctionne pas avec les mêmes erreurs.

À ce stade, je ne sais pas quelle est ma prochaine étape, toute aide serait grandement appréciée.


2 commentaires

Salut Robert. Cela vous dérangerait-il de jeter un coup d'œil à la solution et d'attribuer la prime? Merci


reconfigurez le paquet et essayez de l'installer à nouveau je pense que cela fonctionnera si argon2 est installé correctement


3 Réponses :


1
votes

J'ai reçu une erreur Argon2i non pris en charge. lors de la tentative d'installation de LexikJWTAuthenticationBundle sur mon instance Cloud9 EC2 où PHP72 est exécuté. Après de nombreuses recherches, j'ai trouvé une solution.

Voici les étapes à suivre.

Installez libsodium:

:wq!

Une fois installé, si vous exécutez cette commande pour afficher vos modules PHP, vous vous attendez à voir libsodium répertorié, mais il n'y est pas.

; Enable sodium extension module
extension=sodium.so

Le paquet est en fait installé en tant que sodium.so et non libsodium.so (c'est peut-être la racine du problème?) Pour que PHP charge le module, certaines étapes manuelles sont nécessaires.

Accédez au répertoire dans lequel PHP recherche les modules installés.

$ vi libsodium.ini

Créez un fichier qui pointera vers le package sodium.so.

$ sudo chmod 666 20-libsodium.ini

Donnez au fichier les droits de lecture / écriture.

$ sudo touch libsodium.ini

Ouvrez le fichier dans un éditeur. J'aime utiliser vim.

$ cd /etc/php.d

Cliquez sur la touche 'i' pour passer en mode insertion et collez ce qui suit:

$ php -m 

Enregistrez le fichier en cliquant sur la touche d'échappement et en tapant:

$ sudo yum install libsodium-devel

Maintenant, si vous regardez les modules PHP installés en tapant php -m, vous verrez libsodium listé.

À ce stade, vous devriez être en mesure d'exécuter tout ce qui a généré les erreurs Argon2i.

Pour info, je ne suis pas un développeur PHP, ni un expert AWS, mais je devais l'obtenir travaille au déploiement d'une application PHP d'entreprise sur EC2. Donc, si vous rencontrez des problèmes avec ce qui précède, je ne pourrai peut-être pas vous aider ... mais je vais essayer;)


0 commentaires

0
votes

J'ai pu résoudre ce problème. J'ai créé une nouvelle instance AWS Amazon Linux 2 et j'ai suivi ces étapes:

Installez Argon2

$argon2id$v=19$m=1024,t=2,p=2$dlB2SWdpUEFYZE9RSWNmQg$JGWNTXEomWX1hyM8OfzkRNx5C3zmBu3sqKU1hwohNOU

Revenez au répertoire parent

php pwd.php


1 commentaires

Hé là, désolé pour la longue réponse mais nous avons dû passer à d'autres projets et cela a pris du recul. Merci d'avoir posté les instructions, elles m'ont aidé à avancer un peu plus loin avec la commande de configuration, mais cela génère toujours une erreur. recherche d'argon2id_hash_raw dans -largon2 ... non configure: erreur: problème avec libargon2. (a | so). Veuillez vérifier que l'en-tête et les bibliothèques Argon2> = 20161029 sont installés Je passerai du temps demain à regarder cela (quelques recherches superficielles n'ont pas permis de découvrir grand-chose), mais toute indication à ce sujet serait appréciée.



0
votes

sudo yum install -y libargon2 libargon2-devel

Cela a fonctionné pour moi.


0 commentaires