Laravel requires the Mcrypt PHP extension : comment éviter cette erreur ?

Tour d'horizon des différents cas de figure pouvant générer l'erreur Mcrypt PHP lors de l'installation du framework PHP.

Lors de l'installation du framework Laravel, le message suivant peut s'afficher à l'écran : Laravel requires the Mcrypt PHP extension. Si ce message s'affiche, vérifiez tout d'abord que l'extension mcrypt de PHP est activée. Pour cela, créez un fichier PHP dans lequel vous appelez la fonction phpinfo(). Affichez ensuite le fichier sur votre navigateur : vous verrez toutes les informations sur PHP. Une autre solution consiste à utiliser la commande php -m qui liste les extensions activées. Vérifiez que mcrypt est activé et activez l'extension si nécessaire (dans le fichier php.ini) avant de redémarrer le serveur web.

Si vous utilisez le logiciel MAMP sous Mac OSX, l'erreur peut provenir d'une mauvaise version de PHP utilisée (il faut que ce soit celle utilisée par MAMP). Pour vérifier cela, ouvrez le terminal et saisissez la commande suivante :

which php

Cette commande affiche la version de PHP utilisée. Si ce n'est pas celle de MAMP, allez dans le répertoire /Applications/MAMP/bin/php pour connaître la version de PHP à utiliser. Editez le fichier .bash_profile pour ajouter la ligne suivante (la version de PHP est celle que vous avez trouvée dans la manipulation précédente) :

export PATH=/Applications/MAMP/bin/php/phpX.Y.Z/bin:$PATH

Redémarrez le serveur web pour que le changement soit pris en compte.

Si vous utilisez le système d'exploitation Ubuntu, le fait d'installer le mod mcrypt pour PHP, avec la commande sudo apt-get install php5-mcrypt ne l'active pas. Pour activer l'extension, il faut créer un lien symbolique dans le dossier mods-available de PHP. Avec le mot de passe d'un compte administrateur, utilisez la commande suivante :

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini

Pour activer ensuite le mod, la commande php5enmod est nécessaire :

sudo php5enmod mcrypt

Il ne reste plus qu'à redémarrer Apache. Pour effectuer cette tâche, exécutez la commande suivante dans votre terminal :
sudo service apache2 restart

PHP