J'essaie d'utiliser la migrate
fonction Laravel 4
sur OSX
. Cependant, j'obtiens l'erreur suivante:
Laravel requires the Mcrypt PHP extension.
Pour autant que je comprends, il est déjà activé (voir l'image ci-dessous).
Qu'est-ce qui ne va pas et comment puis-je y remédier?
Réponses:
Les extensions activées pour le Web et les extensions activées pour la ligne de commande peuvent différer. Exécutez
php -m
votre terminal et vérifiez s'ilmcrypt
est répertorié. Si ce n'est pas le cas, vérifiez d'où la ligne de commande charge votrephp.ini
fichier en exécutant àphp --ini
partir de votre terminal.Dans ce
php.ini
fichier, vous pouvez activer l'extension.OSX
J'ai entendu parler de problèmes sous OSX dus au fait que le terminal pointait 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 ça (je n'utilise pas réellement OSX donc ce n'est peut-être pas 100%):
Ubuntu
Sur les versions antérieures d'Ubuntu (avant le 14.04), lorsque vous l'exécutiez,
sudo apt-get install php5-mcrypt
il n'installait pas réellement l'extension dansmods-available
. Vous devrez le lier symboliquement.Sur toutes les versions d'Ubuntu, vous devrez activer le mod une fois installé. Vous pouvez le faire avec
php5enmod
.la source
sudo apt-get install php5-mcrypt
n'installe pas réellement l'extension complètement.Avez-vous installé MAMP ?
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 personnel de l'utilisateur, c'est-à-dire:cd ~
Dans
.bash_profile
, ajoutez la ligne suivante:Modifié: vous devez d'abord utiliser la commande
cd /Applications/MAMP/bin/php
pour vérifier la version PHP de MAMP que vous utilisez, puis la remplacer par la version PHP ci-dessus.Ensuite,
restart
le terminal pour voir quel PHP vous utilisez maintenant.Et cela devrait fonctionner maintenant.
la source
export PATH=/Applications/AMPPS/php-5.4/bin:$PATH
... en supposant que vous photographiez pour 5.4.xx, il y a aussi 5.3 et 5.5 dedans.cd ~
est très important, vous devez ouvrir le.bash_profile
qui existe là-bas, AUSSI important est que vous devez fermer votre terminal et rouvrir afin que les nouvelles variables bash soient chargées. Assurez-vous simplement d'exécuter quel php pour vérifier que votre modification a été appliquée, bon codage!Pour ceux qui utilisent XAMPP 1.7.3 et Mac
which php
/usr/bin/php
, passez à l'étape 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 bien fait, cela devrait être le même que le chemin du # 4.La raison de l'erreur mcrypt est que votre Mac utilise son php natif, vous devez le remplacer par celui de xampp.
PS Je recommanderais d'utiliser MAMP pour les utilisateurs de Laravel 4 pour Mac, ce problème sera résolu avec l'erreur d'informations sur les fichiers php sans sueur, et la version php de xampp est tellement obsolète.
la source
"export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH"
export PATH="/opt/lampp/bin:$PATH"
Pour les utilisateurs non MAMP ou XAMPP sur OSX (avec homebrew installé):
brew install homebrew/php/php56-mcrypt
À votre santé!
la source
$ brew install homebrew/php/php55-mcrypt
, sinon obtenuError: No available formula with the name "php55-mcrypt"
En utilisant Ubuntu, juste
a fait l'affaire pour moi. Vous n'avez pas besoin de redémarrer Apache car vous devez utiliser PHP uniquement à partir de la CLI.
la source
Dans Ubuntu (PHP-FPM, Nginx)
Après l'installation de php5-mcrypt
vous devez créer un lien symbolique vers les fichiers ini dans les mods disponibles:
activer:
redémarrez php5-fpm:
Plus de détails
la source
sudo aptitude -y install php5-mcrypt
, suivi desudo php5enmod mcrypt
etsudo service php5-fpm restart
. (J'ai sauté l'étape de liaison douce). Cela a fonctionné :)Faire travailler Laravel sur Apache
Version PHP: PHP 5.5.9
Version Ubuntu: 14.04
j'ai eu un projet laravel de travail sur les fenêtres. quand je l'ai copié sur le serveur ubuntu, j'ai commencé à obtenir l'erreur mcrypt. cela après de nombreuses heures d'essais et d'erreurs
faire fonctionner la commande artisanale
(si vous rencontrez une erreur mcrypt lors de l'utilisation de l'outil de ligne de commande artisan)
j'ai fait beaucoup d'essais et d'erreurs donc à chaque fois que j'exécute la commande php5enmod avant, j'avais des messages d'erreur. mais lors d'une nouvelle installation, il n'y avait aucun message d'erreur. après cette étape, j'ai obtenu le travail de commande artisanale
correction de l'erreur du navigateur
(si vous rencontrez une erreur mcrypt dans le navigateur lors de l'accès à la page locale d'index laravel)
ajoutez la ligne suivante sous la section des extensions compilées dynamiquement de php ini
redémarrez le serveur apache, purgez le cache laravel et tout ce qui fonctionne
la source
docker-php-ext-install mcrypt
. Testé sur l' image:php:5.6.31-apache
. Sans cela,php -m
ne montre pasmcrypt
.Pour les installations php-fpm sur Ubuntu 14.04, ce qui suit a fonctionné pour moi:
sudo apt-get install php5-mcrypt
Cela créera un
mcrypt.ini
fichier à l'intérieur/etc/php5/mods-available/
alors
sudo php5enmod mcrypt
créera un lien symbolique dans:
/etc/php5/fpm/conf.d/
Redémarrez simplement les services php-fpm
sudo service php5-fpm restart
la source
Pour ubuntu, essayez ces étapes si les autres ne fonctionnent pas:
cd ~
sudo apt-get remove php5-mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart
J'espère que cela vous aidera. Merci !
la source
Ou utiliser:
Je ne sais pas si cela fonctionnera sur les installations PHP standard - j'ai installé en
php 5.5.7
utilisant le package de:la source
Mon OS est
Yosemite
.Je résous ce problème, en trouvant des chemins de configuration:
Exemple de sortie:
Prochaines étapes:
Commandes:
Ensuite, vous pouvez vérifier vos modules php via:
la source
Juste pour les yumers,
Vous avez peut-être besoin d'installer remi repo
la source
Cela l'a résolu pour moi sur mon environnement local Linux Mint /ubuntu/350942/cannot-get-mcrypt-for-php5
Je devais créer un lien symbolique vers mon fichier /etc/php5/conf.d/mcrypt.ini dans les dossiers suivants /etc/php5/apache2/conf.d/mcrypt.ini et /etc/php5/cli/conf.d /mcrypt.ini
la source
Vous avez besoin d'un environnement tout en un. Vous pouvez utiliser MAMP ou XAMPP ou tout autre outil. Après avoir installé l'un de ces outils, vous devrez modifier (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
Jeffrey a également un tutoriel gratuit à ce sujet: https://laracasts.com/series/laravel-5-fundamentals/episodes/2
Je vous conseille de choisir Homestead car vous préinstallerez tous les outils suivants.
la source
Développer sur @JetLaggy:
Après avoir essayé à plusieurs reprises de modifier .bash_profile avec le répertoire MAMP, j'ai changé les autorisations de fichier pour le répertoire php MAMP et j'ai pu obtenir «quel php» pour afficher le répertoire approprié. Le problème était que d'autres fonctions ne fonctionnaient pas, comme «php -v».
J'ai donc mis à jour MAMP. http://documentation.mamp.info/en/mamp/installation/updating-mamp
Cela a fait l'affaire pour ma configuration particulière. J'ai dû ajuster mon CHEMIN pour refléter la version mise à jour de PHP, mais une fois que j'ai fait, tout a fonctionné!
la source
Sous OS X
Utilisation de MAMP
Entrez la commande
which php
dans le terminal pour voir quelle version de PHP vous utilisez. S'il ne s'agit pas de 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 connaissez la version, vous devez modifier le
~/.bash_profile
fichier (c'est-à-dire celui.bash_profile
qui se trouve dans votre répertoire personnel) et ajouter une ligne d'exportation:Assurez-vous de remplacer php5.6.7 par la version de PHP que vous avez sélectionnée dans MAMP.
Une fois le fichier enregistré, assurez-vous de fermer votre terminal et de l'ouvrir à nouveau. Une fois cela fait, vous utiliserez le PHP fourni avec MAMP.
Une façon de trouver facilement la ligne que vous devez mettre dans votre
.bash_profile
est d'exécuter la commande suivante dans votre terminal:Copier et coller ces trois lignes dans votre terminal affichera correctement la version PHP qui a été sélectionnée dans le panneau de configuration MAMP.
Utilisation 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 packages.Vérifier le chemin PHP avec MacPorts
Vous pouvez trouver l'emplacement exact de PHP en utilisant MacPorts avec la commande suivante:
Notez que vous devez remplacer
php70
par la version de PHP que vous avez installée.Vérifiez le chemin PHP 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 en utilisant Homebrew avec la commande suivante:
Notez que vous devez remplacer
php56
par la version de PHP que vous avez installée.la source
dans Ubuntu 14.04
Ubuntu 16.04
Ubuntu 18.04
ou
la source
Si vous utilisez Z Shell, procédez comme suit:
nano ~/.zshrc
export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
source ~/.zshrc
which php
- vous devriez obtenir le chemin MAMP 5.6.105.6.10 est la version de PHP que vous définissez dans votre MAMP.
la source
OSX avec infusion
J'utilise PHP 7.0.x, changez donc "php70" en 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
.la source
Pour ceux qui viennent encore ici aujourd'hui:
Laravel n'a plus besoin d'
mcrypt
extension .mcrypt
est obsolète, la dernière mise à jour de libmcrypt date de 2007. Laravel 4.2 est également obsolète et n'a plus de support. 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é supprimé de Laravel en juin 2015: https://github.com/laravel/framework/pull/9041
la source
la source
mcrypt
, pourriez-vous expliquer pourquoi vous pensez que cela résoudra le problème d'OP?dans ubuntu 14.04 en fonction de votre version php: 5.6,7.0,7.1,7,2,7,3
la source