Laravel nécessite L'extension PHP De Mcrypt

j'essaie d'utiliser la fonction migrate dans Laravel 4 sur OSX . Cependant, j'obtiens l'erreur suivante:

Laravel requires the Mcrypt PHP extension.

autant que je sache, il est déjà activé (voir l'image ci-dessous).

Qu'est-ce qui ne va pas, et comment puis-je le réparer?

enter image description here

354
demandé sur Patrick Reck 2013-05-30 11:31:18

22 réponses

les extensions activées sur le web et les extensions activées en ligne de commande peuvent différer. Exécuter php -m dans votre terminal et vérifiez si mcrypt est répertorié. Si ce n'est pas le cas, vérifiez où la ligne de commande charge votre fichier php.ini en exécutant php --ini depuis votre terminal.

dans ce fichier php.ini vous pouvez activer l'extension.

OSX

j'ai entendu parler de gens sur OSX courant problèmes dus au terminal pointant vers le PHP natif livré avec OSX. Vous devriez plutôt mettre à jour votre profil bash pour inclure le chemin réel vers votre PHP. Quelque chose comme ceci (je n'utilise pas réellement OSX donc cela pourrait ne pas être 100%):

export PATH=/usr/local/php5/bin:$PATH

Ubuntu

Sur les anciennes versions d'Ubuntu (avant 14.04) lorsque vous l'exécutez sudo apt-get install php5-mcrypt il ne fait pas installer l'extension dans le mods-available . Il faut le relier par un lien symbolique.

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

sur toutes les versions Ubuntu, vous aurez besoin d'activer le mod une fois qu'il est installé. Vous pouvez le faire avec php5enmod .

sudo php5enmod mcrypt
sudo service apache2 restart

NOTES

226
répondu Jason Lewis 2017-12-01 16:38:52

avez-vous des MAMP installé?

utilisez which php dans le terminal pour voir quelle version de PHP vous utilisez.

si ce N'est pas la version PHP de MAMP, vous devez éditer ou ajouter .bash_profile dans le répertoire de l'utilisateur, c'est-à-dire: cd ~

dans .bash_profile , ajouter la ligne suivante:

export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH

édité: vous devez D'abord utiliser la commande cd /Applications/MAMP/bin/php pour vérifier quelle version PHP de MAMP vous utilisez, puis la remplacer par la version PHP ci-dessus.

puis restart le terminal pour voir quel PHP vous utilisez maintenant.

et ça devrait marcher maintenant.

327
répondu JustinHo 2016-09-07 08:10:22

à ceux qui utilisent XAMPP 1.7.3 et Mac

  1. aller au Terminal
  2. Entrée which php
    • s'il est écrit /usr/bin/php , passez à 3.
  3. Entrée sudo nano ~/.bash_profile (ou sudo vim ~/.bash_profile si vous savez comment l'utiliser)
  4. puis coller ce export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
  5. Ctrl+O puis entrer pour enregistrer, puis Ctrl+X pour quitter.
  6. Type cd ~
  7. type . .bash_profile
  8. redémarrez le terminal.
  9. inscrivez which php . Si vous l'avez bien fait, il devrait être le même que le chemin du #4.

la raison de l'erreur de mcrypt est que votre Mac utilise son php natif, vous devez le changer pour celui de xampp.

P. S. Je le recommande en utilisant MAMP pour Laravel 4 pour les utilisateurs Mac, ce problème sera résolu avec l'erreur d'information de fichier php sans effort, et la version php de xampp est tellement dépassée.

137
répondu Bryan P 2015-02-25 12:07:01

pour les utilisateurs non MAMP ou XAMPP sur OSX (avec homebrew installé):

brew install homebrew/php/php56-mcrypt

santé!

82
répondu oozzal 2016-06-04 07:46:30

utilisant Ubuntu, juste

sudo php5enmod mcrypt

a fait l'affaire pour moi. Vous n'avez pas besoin de redémarrer Apache car vous devez utiliser PHP depuis le CLI.

43
répondu mppfiles 2014-06-15 19:50:11

in Ubuntu (PHP-FPM,Nginx)

sudo apt-get install php5-mcrypt

après l'installation de php5-mcrypt

vous devez créer un lien symbolique vers les fichiers ini dans mods-available:

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

activer:

sudo php5enmod mcrypt

redémarrer php5-fpm:

sudo service php5-fpm restart

plus de détails

35
répondu Nanhe Kumar 2014-07-01 09:45:04

obtenir Laravel travaillant sur Apache

version PHP: PHP 5.5.9

Ubuntu version: 14.04

j'avais un projet laravel en cours sur windows. quand je l'ai copié sur le serveur ubuntu , j'ai commencé à avoir mcrypt erreur. cela après beaucoup d'heures d'essai et d'erreur

obtenir de l'artisan de commande de travail

(si vous ont une erreur de mcrypt lors de l'utilisation de l'outil en ligne de commande artisan)

j'ai fait beaucoup d'essais et d'erreurs donc chaque fois que j'ai lancé la commande php5enmod avant, j'ai eu des messages d'erreur. mais sur fresh install il n'y avait aucun message d'erreur. après cette étape, j'ai obtenu artisan commande de travail

sudo rm /etc/php5/mods-available/mcrypt.ini
sudo apt-get purge php5-mcrypt
sudo apt-get install mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

corriger l'erreur de navigateur

(si vous avez une erreur de mcrypt dans le navigateur lors de l'accès local laravel page d'index)

sudo nano /etc/php5/apache2/php.ini

ajouter la ligne suivante dans la section extensions compilées dynamiquement de php ini

extension=mcrypt.so

redémarrer le serveur apache, purger le cache laravel et tout ce qui fonctionne

22
répondu Sojan V Jose 2014-10-02 20:12:19

pour les installations php-fpm sur Ubuntu 14.04, les suivantes ont fonctionné pour moi:

sudo apt-get install php5-mcrypt

cela créera mcrypt.ini fichier à l'intérieur /etc/php5/mods-available/

puis

sudo php5enmod mcrypt

va créer un lien symbolique dans: /etc/php5/fpm/conf.d/

redémarrez simplement les services php-fpm sudo service php5-fpm restart

16
répondu Prateek Choudhary 2014-12-19 07:00:53

Pour ubuntu essayer ces étapes si d'autres ne fonctionnent pas:

  1. cd ~
  2. sudo apt-get remove php5-mcrypt
  3. sudo apt-get install php5-mcrypt
  4. sudo php5enmod mcrypt
  5. sudo service apache2 restart

Espère que cela va aider. Merci !

16
répondu Sagiruddin Mondal 2018-08-17 17:21:13

ou, utiliser:

sudo apt-get install php5-mcrypt

pas sûr que cela fonctionnera sur les installations PHP standard-j'ai installé php 5.5.7 en utilisant le paquet de:

sudo add-apt-repository ppa:ondrej/php5 
sudo apt-get update
16
répondu JoeTidee 2018-08-17 17:21:56

mon OS est Yosemite .

Je résous ce problème, en trouvant des chemins de configuration:

php --ini

exemple de sortie:

Configuration File (php.ini) Path: /usr/local/etc/php/5.5
Loaded Configuration File:         /usr/local/etc/php/5.5/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.5/conf.d
Additional .ini files parsed:      (none)

prochaines étapes:

  1. renommer ou supprimer le fichier ini php55
  2. créer symlink
  3. redémarrer le serveur Apache

commandes:

mv /usr/local/etc/php/5.5/php.ini /usr/local/etc/php/5.5/php.ini.default
ln -s /etc/php.ini /usr/local/etc/php/5.5/php.ini
sudo apachectl restart

alors vous pouvez vérifier vos modules php via:

php -m
13
répondu d.danailov 2018-08-17 17:27:38

cela résolu pour moi sur mon Linux Mint environnement local https://askubuntu.com/questions/350942/cannot-get-mcrypt-for-php5

j'avais besoin de faire un lien symbolique vers /etc/php5/conf.d / mcrypt.fichier ini dans les dossiers suivants /etc/php5/apache2/conf.d / mcrypt.ini et / etc / php5/cli / conf.d / mcrypt.ini

12
répondu Theo Kouzelis 2017-04-13 12:22:45

Juste pour yumers,

yum install php-mcrypt
service httpd restart
chown -R apache:apache apppath

peut-être que vous avez besoin d'installer remi repo

12
répondu Sean 2018-08-17 17:28:38

Vous avez besoin d'un tout dans un environnement. Vous pouvez utiliser MAMP ou XAMPP ou tout autre outil. Après avoir installé l'un de ces outils, vous devrez éditer(créer) votre .bash_profile(en Supposant que vous utilisez bash).

ou même simple et plus professionnel, vous pouvez utiliser Laravel Homestead.

voici un lien vers la documentation officielle: http://laravel.com/docs/5.0/homestead

aussi Jeffrey a un libre tutoriel sur le sujet: https://laracasts.com/series/laravel-5-fundamentals/episodes/2

je vous conseille d'aller avec homestead parce que vous preinstall tous les outils suivants.

  • Ubuntu 14.04
  • PHP 5.6
  • HHVM
  • Nginx
  • MySQL
  • Postgres
  • Noeud (Avec Bower, Grunt, et Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Laravel Envoy
  • Tissu + HipChat Extension
11
répondu mburakergenc 2015-03-02 19:31:15

en savoir plus sur @JetLaggy:

après avoir essayé encore et encore de modifier .bash_profile avec le répertoire MAMP, j'ai modifié les permissions des fichiers pour le répertoire php MAMP et j'ai pu obtenir 'which php' pour afficher le répertoire approprié. Le problème était que d'autres fonctions ne fonctionnaient pas, comme 'php-v'.

donc j'ai mis à jour MAMP. http://documentation.mamp.info/en/mamp/installation/updating-mamp

Cela a fait le tour de ma configuration. J'ai dû ajuster mon chemin pour refléter la version mise à jour de PHP, mais une fois que je l'ai fait, tout a fonctionné!

9
répondu abaumer 2013-12-10 23:24:24

on OS X

Using MAMP

entrez la commande which php dans le terminal pour voir quelle version de PHP vous utilisez. Si ce n'est pas la version PHP de MAMP, la variable $PATH utilisée par Bash devra être mise à jour.

tout d'abord, vous devez utiliser la commande "cd /Applications/MAMP/bin/php" pour vérifier quelle version php de MAMP et prendre note de la version (par exemple, php5.6.7).

une fois que vous savez version, vous devez éditer le fichier ~/.bash_profile (c'est-à-dire le fichier .bash_profile qui est dans votre répertoire personnel) et ajouter une ligne d'exportation:

    export PATH=/Applications/MAMP/bin/php/php5.6.7/bin:$PATH

assurez-vous de remplacer php5.6.7 avec la version de PHP que vous avez sélectionnée dans MAMP.

une fois que le fichier a été sauvegardé, assurez-vous de fermer votre Terminal et de l'ouvrir de nouveau. Une fois que cela a été fait, vous utiliserez le PHP qui est fourni avec MAMP.


une façon de trouver facilement ce que la ligne devrait être que vous devez mettre à l'intérieur de votre .bash_profile est d'exécuter la commande suivante à l'intérieur de votre terminal:

    echo export PATH=`cat /Applications/MAMP/conf/apache/httpd.conf \
         | grep php | grep -i LoadModule | head -n1 \
         | sed -e 's/^[^\/]*\/\(.*\)\/mod.*/\//'`/bin:$PATH

copier et coller ces trois lignes dans votre terminal produira correctement la version PHP qui a été sélectionnée dans le panneau de contrôle MAMP.

À L'Aide De Homebrew/MacPorts

assurez-vous que votre path contient /usr/local/bin/ (Homebrew) ou /opt/local/bin (MacPorts) si vous utilisez PHP fourni avec l'un de ces deux gestionnaires de paquets.

Vérifier le chemin PHP avec MacPorts

vous pouvez trouver L'emplacement exact de PHP en utilisant MacPorts avec la commande suivante:

port contents php70 | grep bin/php

notez que vous devez remplacer php70 par la version de PHP que vous avez installée.

Vérifier le chemin PHP avec Homebrew-php

Homebrew-php ( https://github.com/Homebrew/homebrew-php ) est un tap qui possède différentes versions de PHP.

vous pouvez trouver L'emplacement exact de PHP en utilisant Homebrew avec la commande suivante:

brew --prefix homebrew/php/php56

notez que vous devez remplacer php56 par la version de PHP que vous avez installée.

7
répondu Tim Groeneveld 2016-01-14 01:28:25

si vous utilisez Z Shell, faites simplement ce qui suit:

  1. Ouvrir un terminal
  2. sudo nano ~/.zshrc
  3. Coller ceci: export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
  4. Enregistrer
  5. Exécuter source ~/.zshrc
  6. Run which php - vous devriez obtenir le chemin MAMP 5.6.10

5.6.10 est la version de PHP que vous avez définie dans votre MAMP.

3
répondu Unwired 2016-01-20 03:43:24

dans Ubuntu 14.04

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

Ubuntu 16.04

sudo apt-get install php-mcrypt
sudo phpenmod mcrypt
3
répondu Gowthaman 2017-05-05 16:42:55

OSX with brew

$ brew install mcrypt php70-mcrypt

j'exécute PHP 7.0.x, alors changez "php70" pour votre version, si vous utilisez une version différente.

Comme indiqué dans d'autres réponses, vous pouvez voir votre version php avec $ php -v .

2
répondu kris 2017-01-28 05:41:55

pour ceux qui viennent encore ici aujourd'hui:

Laravel n'a plus besoin de mcrypt extension . mcrypt est obsolète, la dernière mise à jour de libmcrypt remonte à 2007. Laravel 4.2 est obsolète et n'a plus de soutien. La meilleure solution (=sécurisée) est de mettre à jour vers Laravel >5.1 (il n'y a pas DE LTS avant Laravel 5.2).

Mcrypt a été retiré de Laravel en juin 2015: https://github.com/laravel/framework/pull/9041

1
répondu rap-2-h 2018-03-16 09:16:42

dans ubuntu 14.04 basé sur votre version php : 5.6,7.0,7.1,7.2,7.3

sudo apt-get install php{version} - mcrypt

sudo apt-get install php7.1-mcrypt

sudo phpenmod mcrypt 
0
répondu Jignesh Joisar 2018-10-04 12:02:05

sudo php installer mcrypt

sudo php5enmod mcrypt

-1
répondu Anubhav Tiwari 2018-09-18 12:15:05