Laravel nécessite Mcrypt extension PHP
Je suis en train d'utiliser le migrate
fonction dans Laravel 4
sur OSX
. Cependant, j'obtiens l'erreur suivante:
Laravel requires the Mcrypt PHP extension.
Comme je le comprends, il est déjà activé (voir l'image ci-dessous).
Ce qui est mal, et comment puis-je résoudre ce problème?
- Utilisez-vous Laravel 3 ou 4?
- Juste ajouté l'info à la poste. C'est Laravel 4
- Peut-être que ce post va vous aider: stackoverflow.com/questions/14476181/...
- Êtes-vous à l'aide intégrée dans le PHP, ou avez-vous installé une autre version? Si oui, comment avez-vous l'installer?
- J'ai trouvé cette solution facile à l'aide de homebrew: jorble.com/2013/04/install-php-mcrypt-in-macosx
- Cela a résolu pour moi: un package d'installation pour les mcrypt. J'ai couru, et hop! topicdesk.com/downloads/mcrypt/mcrypt-download
- Pour Ubuntu: Comment installer le mcrypt module en PHP
- L'image se rapporte à l'extension PHP chargé lors de l'exécution à l'intérieur d'un serveur web. Utiliser php -m dans une console, pour voir si l'extension est bien activée sur le "cli" environnement.
Vous devez vous connecter pour publier un commentaire.
Le web, extensions et de la ligne de commande activé les extensions peuvent différer. Exécuter
php -m
dans votre terminal et vérifiez simcrypt
est répertorié. Si ce n'est pas alors de vérifier si la ligne de commande est le chargement de votrephp.ini
fichier en cours d'exécutionphp --ini
à partir de votre terminal.Dans ce
php.ini
fichier, vous pouvez activer l'extension.OSX
J'ai entendu parler de gens sur OSX en cours d'exécution pour les problèmes causés par le terminal de pointage pour le natif de PHP livré avec OSX. En revanche, vous pouvez mettre à jour votre bash profil pour inclure le chemin d'accès réel à votre PHP. Quelque chose comme ceci (je n'ai pas vraiment utiliser OSX, donc cela pourrait ne pas être de 100%):
Ubuntu
Sur des versions antérieures d'Ubuntu (avant 14.04) lorsque vous exécutez
sudo apt-get install php5-mcrypt
il ne fait pas installer l'extension dans lemods-available
. Vous aurez besoin de lien symbolique il.Sur toutes les versions d'Ubuntu, vous devrez activer le mod une fois qu'il est installé. Vous pouvez le faire avec
php5enmod
.sudo apt-get install php5-mcrypt
ne pas installer l'extension entièrement.Avez-vous des MAMP installé?
Utilisation
which php
dans le terminal pour voir la version de PHP que vous utilisez.Si ce n'est pas la version de PHP à partir de MAMP, vous devez modifier ou ajouter des
.bash_profile
dans le répertoire home de l'utilisateur, qui est :cd ~
Dans
.bash_profile
, ajoutez la ligne suivante:Édité: d'Abord, vous devez utiliser la commande
cd /Applications/MAMP/bin/php
pour vérifier la version de PHP à partir de MAMP vous utilisez et de la remplacer par la version de PHP ci-dessus.Puis
restart
le terminal pour voir ce qui PHP que vous utilisez actuellement.Et il devrait fonctionner maintenant.
export PATH=/Applications/AMPPS/php-5.4/bin:$PATH
...en supposant que vous êtes en tournage pour 5.4.xx, il y a aussi 5.3 et 5.5 là.vi .bash_profile
cd ~
est très important, vous devez ouvrir le.bash_profile
qui existe, il est ÉGALEMENT important que vous devez fermer votre terminal et de le ré-ouvrir pour que les nouvelles variables bash sont chargés. Assurez-vous juste à courir php pour vérifier vos modifications appliquées, amusez-vous!which php
version est en cours d'exécution est ok tout en utilisant MAMP, car il a son propre AMPLI à pile et depuiswhich php
regarde le système de version de PHP (par exemplephp -i
retourne que mon ini à/usr/local/etc/php/5.6/php.ini
toutphpinfo()
(à l'intérieur de la MAMP document root) me dit que mon ini àApplications/MAMP/bin/php/php7.0.0/conf/php.ini
).which php
désigne le système de la version de php (disons /usr/local/bin/php), tandis que MAMP est en cours d'exécution sur son propre php.ini. Même lorsque MAMP est activée, "qui php" va encore dire/usr/local/bin/php
(le cas échéant, de toute évidence), mais il sera toujours l' /Applications/MAMP/bin/php/php7... fichier qui doit être changé (puisque vous utilisez le MAMP Apache, par exemple). C'est un peu comme avoir localhost:80 (système) et localhost:8888 (MAMP) disponible dans le même temps,which php
allons parler localhost:80.Pour ceux qui utilise XAMPP 1.7.3 et Mac
which php
/usr/bin/php
, puis passez à l'3.sudo nano ~/.bash_profile
(ousudo vim ~/.bash_profile
si vous savez comment l'utiliser)export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
cd ~
. .bash_profile
which php
. Si vous l'avez fait à droite, il devrait être le même que le chemin d'accès dans #4.La raison pour mcrypt erreur est parce que votre Mac utilise ses natif de php, vous devez le modifier pour l'un xampp a.
P. S.
Je vous recommande d'utiliser MAMP pour Laravel 4 pour les utilisateurs de Mac, ce problème sera résolu avec le fichier php info erreur sans la sueur, et le php version de xampp est tellement obsolète.
"export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH"
export PATH="/opt/lampp/bin:$PATH"
Pour les non MAMP ou XAMPP utilisateurs sur OSX (avec homebrew installé):
brew install homebrew/php/php56-mcrypt
Cheers!
$ brew install homebrew/php/php55-mcrypt
, autrement a euError: No available formula with the name "php55-mcrypt"
Utiliser Ubuntu, juste
a fait le tour pour moi. Vous n'avez pas besoin de redémarrer Apache car vous avez besoin pour utiliser PHP seulement à partir de la CLI.
Ubuntu (PHP-FPM,Nginx)
Après l'installation de php5-mcrypt
vous avez à faire un lien symbolique vers le fichier ini dans mods-available:
permettre:
redémarrer php5-fpm:
Plus de détails
sudo aptitude -y install php5-mcrypt
, suivie parsudo php5enmod mcrypt
etsudo service php5-fpm restart
. (J'ai sauté le doux étape de liaison). Il a travaillé 🙂Arriver Laravel de travail sur Apache
Version de PHP : PHP 5.5.9
La version Ubuntu : 14.04
j'ai eu un travail laravel projet sur windows. quand je l'ai copié sur le serveur ubuntu , j'ai commencé à avoir mcrypt erreur. après des heures et des heures d'essais et d'erreurs
arriver artisan de commande de travail
(si vous rencontrez des mcrypt d'erreur lors de l'utilisation de l'artisan outil de ligne de commande)
j'ai fait beaucoup d'essai et d'erreur, de sorte que chaque fois que je lance le php5enmod de commande avant, j'avais des messages d'erreur. mais sur la nouvelle installation, il n'y a pas de messages d'erreur. après cette étape, je me suis artisan commande de travail
fixant le message d'erreur du navigateur
(si vous rencontrez des mcrypt d'erreur dans le navigateur lors de l'accès local laravel page d'index)
ajoutez la ligne suivante sous le compilé dynamiquement section extensions de php ini
redémarrer le serveur apache , une purge de la laravel cache et tout le travail
docker-php-ext-install mcrypt
. Testé sur une image:php:5.6.31-apache
. Sans cela,php -m
ne montre pasmcrypt
.Pour php-fpm installations sur Ubuntu 14.04, le suivant a fonctionné pour moi :
sudo apt-get install php5-mcrypt
Cela va créer
mcrypt.ini
fichier à l'intérieur de/etc/php5/mods-available/
Puis
sudo php5enmod mcrypt
va créer un lien symbolique dans:
/etc/php5/fpm/conf.d/
Suffit de redémarrer php-fpm services
sudo service php5-fpm restart
Pour ubuntu essayez de suivre ces étapes si les autres ne sont pas de travail :
cd ~
sudo apt-get remove php5-mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart
Espère que cela va aider. Merci !
Ou, utilisation:
ne sais pas si cela va fonctionner sur le standard de PHP installe - j'ai installé
php 5.5.7
en utilisant le package à partir de :Mon OS est
Yosemite
.- Je résoudre ce problème, en trouvant les chemins de configuration:
Exemple de sortie:
Prochaines étapes:
Commandes:
Ensuite, vous pouvez vérifier vos modules php via:
Juste pour yumers,
Peut-être vous avez besoin d'installer remi repo
Cela a résolu pour moi sur mon Linux Mint locale de l'environnement de 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 le répertoire /etc/php5/apache2/conf.d/mcrypt.ini et /etc/php5/cli/conf.d/mcrypt.ini
Vous avez besoin d'un tout dans un environnement. Vous pouvez utiliser MAMP ou XAMPP ou tout autre outils. Après l'installation de l'un de ces outils, vous aurez besoin de modifier(à créer) votre .bash_profile(en Supposant que vous utilisez bash).
Ou même de la simple et de 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 tutoriel sur le sujet:
https://laracasts.com/series/laravel-5-fundamentals/episodes/2
Je vous conseille d'aller avec homestead parce que vous aurez pré-installer les outils suivants.
Expansion sur @JetLaggy:
Après avoir essayé encore et encore à modifier .bash_profile avec le MAMP répertoire, j'ai changé les autorisations de fichier pour le MAMP répertoire php et a été en mesure d'obtenir des "qui php' pour afficher le répertoire approprié. La difficulté était que d'autres fonctions ne fonctionnent pas, comme "php -v'.
J'ai donc mis à jour MAMP. http://documentation.mamp.info/en/mamp/installation/updating-mamp
Cela a fait le tour de ma configuration. J'ai eu à régler mon CHEMIN afin de refléter la mise à jour de la version de PHP, mais une fois que je l'ai fait, tout a fonctionné!
Sur OS X
En utilisant MAMP
Entrez la commande
which php
dans le terminal pour voir la version de PHP que vous utilisez. Si ce n'est pas la version de PHP à partir de MAMP, la variable $PATH utilisé par Bash devront être mis à jour.Tout d'abord, vous devez utiliser la commande "cd /Applications/MAMP/bin/php" pour vérifier la version de php à partir de MAMP et de prendre note de la version (par exemple, php5.6.7).
Une fois que vous savez la version, vous devez modifier la
~/.bash_profile
fichier (qui est, le.bash_profile
qui se trouve dans votre répertoire home) et d'ajouter une ligne d'export:Assurez-vous que vous remplacez php5.6.7 avec la version de PHP que vous avez sélectionné dans MAMP.
Une fois que le fichier a été enregistré, assurez-vous que vous fermez la fermeture de votre Terminal et de l'ouvrir à nouveau. Une fois que cela aura été fait, vous serez en utilisant le PHP qui est livré avec MAMP.
Une façon de trouver facilement ce que la ligne devrait être que vous avez besoin de mettre à l'intérieur de votre
.bash_profile
est d'exécuter la commande suivante dans votre terminal:De copier et de coller ces trois lignes dans votre terminal correctement la sortie de la version de PHP qui a été sélectionné à l'intérieur de la MAMP panneau de contrôle.
À L'Aide De Homebrew/MacPorts
Assurez-vous que votre
path
contient/usr/local/bin/
(Homebrew) ou/opt/local/bin
(MacPorts) si vous utilisez PHP qui vient avec l'une de ces deux gestionnaires de paquets.Vérification de l'PHP chemin avec MacPorts
Vous pouvez trouver l'emplacement exact de PHP à l'aide de MacPorts, avec la commande suivante:
Noter que vous devez remplacer
php70
avec la version de PHP que vous avez installés.Vérifier le PHP chemin avec Homebrew-php
Homebrew-php (https://github.com/Homebrew/homebrew-php) est un robinet qui a différentes versions de PHP.
Vous pouvez trouver l'emplacement exact de PHP à l'aide de Homebrew avec la commande suivante:
Noter que vous devez remplacer
php56
avec la version de PHP que vous avez installés.dans Ubuntu 14.04
Ubuntu 16.04
Ubuntu 18.04
ou
Si vous utilisez Z Shell, il suffit de faire les opérations suivantes:
nano ~/.zshrc
export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
source ~/.zshrc
which php
- vous devriez obtenir le MAMP 5.6.10 chemin5.6.10 est la version de PHP que vous définissez dans votre MAMP.
OSX avec brew
Je suis en cours d'exécution PHP 7.0.x, de sorte que le changement "php70" à votre version, si vous utilisez une version différente.
Comme indiqué dans d'autres réponses, vous pouvez voir votre version de php avec
$ php -v
.Pour ceux qui continuent de venir ici aujourd'hui:
Laravel n'a pas besoin de
mcrypt
extension plus.mcrypt
est obsolète, la dernière mise à jour libmcrypt était en 2007. Laravel 4.2 est obsolète et n'a plus de soutien. Les meilleures (=sécurité) la solution est de mettre à jour à Laravel >5.1 (il n'y a pas de LTS avant de Laravel 5.2).Mcrypt a été retiré de Laravel en juin 2015: https://github.com/laravel/framework/pull/9041
mcrypt
, pourriez-vous développer sur pourquoi vous pensez que ce sera corrigé OP problème?dans ubuntu 14.04 en fonction de votre version de php : 5.6,7.0,7.1,7.2,7.3