web-dev-qa-db-fra.com

impossible de trouver mcrypt => appel de la fonction non définie Laravel\mcrypt_create_iv ()

Essayer de configurer Laravel et continuer à recevoir cette erreur. J'ai installé mcrypt par brassé et il se trouve dans/usr/local/Cellar. Des pensées? .. Cela ne s'affiche pas non plus dans la commande de terminal php -m, si cela compte. J'utilise Mountaion Lion avec le serveur Web natif Macs.

42
coryj

Vous devez également l'activer dans votre fichier php.ini et probablement redémarrer Apache.

Dans php.ini, vous trouverez ;mcrypt.so et en supprimerez le ;.

Ou, si ce n'est pas là, ajoutez simplement mcrypt.so quelque part.

De plus, l'option salt est déconseillée depuis PHP 7.0.0. Il est maintenant préférable d’utiliser simplement le sel généré par défaut.

37
Deinumite

Ubuntu ou n’importe quel utilisateur Linux basé sur Debian peuvent installer le paquet requis avec apt-get:

Sudo apt-get install php5-mcrypt

N'oubliez pas de redémarrer le serveur Web après:

Sudo service Apache2 restart

Si cela ne fonctionne toujours pas, essayez de lier le fichier de configuration au dossier de configuration approprié pour le serveur Web. Merci à dave1010 pour cet indice dans les commentaires.

Sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/Apache2/conf.d/   # for Apache
Sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/cli/conf.d/       # for CLI

Et encore une fois, redémarrez le serveur Web:

Sudo service Apache2 restart

Peut-être, si vous ne travaillez pas encore, vous avez aussi besoin de la ligne affichée par @RahulPrasad, avec php5enmod mcrypt.

65
Sophy

Essayez Sudo php5enmod mcrypt && Sudo service Apache2 restart

28
Rahul Prasad

Vous avez installé mcrypt alors que vous vouliez réellement le module php56-mcrypt php.

Vous avez indiqué dans votre question que vous pouvez voir que mcrypt est installé dans /usr/local/Cellar et que vous utilisez OSX. Ainsi, le moyen le plus simple d'installer le module mcrypt PHP sur OSX à l'aide de Homebrew est:

// assuming you have php56
brew install php56-mcrypt

Si homebrew ne trouve pas le bon paquet, vous devrez peut-être appuyer sur les référentiels PHP disponibles sur GitHub :

brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php

Maintenant, lorsque vous exécutez la commande brew search mcrypt, vous devriez voir quelque chose comme:

libtomcrypt   mcrypt   php53-mcrypt   php54-mcrypt   php55-mcrypt   php56-mcrypt

Plusieurs autres affiches ont mentionné la nécessité de modifier votre fichier php.ini. Cela ne sera pas nécessaire, car homebrew se chargera d'activer le module pour vous. Il place le fichier de configuration à /usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini

20
darronz

L'extension mcrypt PHP n'est pas installée.

Pour un Mac, j’ai suivi les instructions suivantes: mcrypt on Mac 10.7 ou 10.8 .

Ils ressemblent beaucoup, mais ce n'est pas, il est très facile de suivre cela fonctionne!

2
duality_

Juste une note pour les personnes qui ont récemment effectué une mise à niveau vers PHP 7 - La bibliothèque MCRYPT a été deprecated . Si vous avez mis à niveau vers PHP 7 et que vous voyez maintenant cette erreur, c'est pourquoi. Vous devriez passer à une autre bibliothèque, certaines alternatives sont mentionnées dans ce fil .

1
James Paterson

Vous avez peut-être installé mycrypt mais le module php_mcrypt n'est pas installé/activé.

1
Andrew

Accédez au dossier CLI de votre installation php, recherchez-y le fichier php.ini et activez-le. Terminal utilise parfois un autre fichier php.ini, qui se trouve généralement dans le dossier CLI.

0
Kris

J'ai installé php et mcrypt avec Homebrew, mais j'ai quand même rencontré cette erreur après avoir effectué brew update plusieurs fois. Je pense que ma configuration est un peu bouleversée avec le temps.

Il s'avère que mon php était en cours de configuration à partir de /private/etc/php.ini, not /usr/local/etc/php/5.4/php.ini comme le recommande Homebrew. Mcrypt n'est même pas inclus dans /usr/local/etc/php/5.4/ext-mcrypt.ini, ce qui n'a pas beaucoup de sens de considérer que php -i produit ceci pour moi:

Configuration File (php.ini) Path => /usr/local/etc/php/5.4
Loaded Configuration File => /usr/local/etc/php/5.4/php.ini
Scan this dir for additional .ini files => /usr/local/etc/php/5.4/conf.d
Additional .ini files parsed => /usr/local/etc/php/5.4/conf.d/ext-mcrypt.ini

Ma solution:

  1. Éditez /private/etc/php.ini en tant que superutilisateur
  2. Ajouter extension="/usr/local/Cellar/php54-mcrypt/5.4.28/mcrypt.so" et sauvegarder
  3. Redémarrez Apache avec Sudo apachectl restart
0
gmeben

C'est ce qui a finalement fonctionné pour moi:

brew reinstall --with-homebrew-curl --with-httpd php56
brew reinstall --build-from-source php56-mcrypt

J'ai également dû faire Sudo chmod 777 /usr/local/etc/php/5.6/conf.d car j'ai eu des erreurs lorsque le second brew reinstall a essayé d'ajouter le ext-mcrypt.ini à ce répertoire.

0
Eric Norcross