J'ai installé Laravel avec succès, mais après avoir exécuté php artisan serve
Et accédé à localhost:8000
, J'obtiens cette erreur:
Utilisation de la constante non définie MCRYPT_RIJNDAEL_128 - supposé 'MCRYPT_RIJNDAEL_128'
J'ai vérifié phpinfo()
sur localhost:8888
Et il est dit que mcrypt
est correctement installé. Mais la seule chose à laquelle je peux penser est que mon chemin est peut-être faux?
dans mon .bash_profile
j'ai
PATH=/usr/local/bin:$PATH
Chaque fois que j'essaie d'exécuter les commandes Laravel, je dois taper ceci dans le terminal:
export PATH="~/.composer/vendor/bin:$PATH"
Je cours sur un Mac. Existe-t-il un moyen simple de configurer mon bash_profile
Afin que je puisse constamment changer entre les adresses des hôtes locaux et que toutes les fonctions PHP PHP fonctionnent correctement)?
Ce problème par rapport au chargeur d'extensions PHP. Vous n'avez pas besoin d'utiliser la commande laravel du tout après une installation réussie. Laravel Le framework a besoin de la bibliothèque Mcrypt pour le module de sécurité et crypte une partie du fichier de configuration.
Les choses dont vous avez besoin sont ces étapes.
puis configurez make et installez-le.
Télécharger php http://php.net/releases/index.php Ci-dessus 5.5.14 sont suggérés. (Utilisez ce chemin plus tard à l'étape 4)
puis téléchargez Autoconfigure
curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
tar xvfz autoconf-latest.tar.gz
cd autoconf-2.69/
./configure
make
Sudo make install
alors vous devez aller au niveau du répertoire
cd ***YOURPHPDIRECTORY***/ext/mcrypt/
et exécutez phpize dans ce niveau de répertoire
/usr/bin/phpize
./configure
make
Sudo make install
modifiez votre php.ini pour activer l'extension mcrypt en l'insérant dans php.ini
extension=mcrypt.so
Un moyen plus simple sur Ubuntu
apt-get install php5-mcrypt
mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
php5enmod mcrypt
service Apache2 restart
Remarque: si vous n'avez pas "/etc/php5/conf.d" sautez simplement cette étape et cela fonctionnera bien
Pour les utilisateurs de Mac spécialement - installez-le en utilisant Home Brew
J'ai installé une installation Laravel vide et j'ai reçu le message d'erreur suivant lors de la navigation vers http: // localhost/kanban/public / :
Remarque: Utilisation de la constante MCRYPT_RIJNDAEL_128 non définie - supposé "MCRYPT_RIJNDAEL_128" dans /Library/WebServer/Documents/xxx/config/app.php à la ligne 83
La recherche de ce message d'erreur sur Google renvoie de nombreux didacticiels sur la façon d'installer mcrypt sur Mac OS X (que ce soit en le construisant à partir de la source ou en utilisant Homebrew). Le problème était que les packages mcrypt et php55-mcrypt étaient correctement installés:
$ brew install mcrypt
Warning: mcrypt-2.6.8 already installed
$ brew install php55-mcrypt
Warning: php55-mcrypt-5.5.20 already installed
Mcrypt a également été correctement chargé par PHP:
$ php -m | grep mcrypt
mcrypt
$ php -i | grep mcrypt
Additional .ini files parsed => /usr/local/etc/php/5.5/conf.d/ext-mcrypt.ini,
Registered Stream Filters => zlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, mcrypt.*, mdecrypt.*
mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value
pour plus de détails, référez-vous à ce lien - http://benohead.com/mac-os-x-php-notice-use-undefined-constant-mcrypt_rijndael_128/
Si vous voyez cela sur ubuntu ou sur d'autres versions de * nix, il peut être utile de procéder comme suit:
service php5-fpm restart
J'utilise nginx et php-fpm, et j'ai déjà fait apt-get install php5-mcrypt
, et déplacé le mcrypt.ini
fichier vers mods-available
.
Je devais faire Sudo service php5-fpm restart
avant que cela ne fonctionne réellement.
Je viens de régler le .bash_profile
dans MacOS et cela a fonctionné:
export PATH="/usr/local/sbin:$PATH"
PHP_AUTOCONF="/usr/local/bin/autoconf"
source ~/.bash_aliases
J'ai également rencontré ce problème en essayant de déployer un Laravel
vers Apache
sur Mac OS Sierra
. J'ai finalement trouvé ce message qui donnait des instructions étape par étape pour résoudre ce problème. Ces instructions supposent que vous avez Homebrew installé; si vous ne l'avez pas installé, collez ce qui suit dans une fenêtre de terminal pour l'installer:
/usr/bin/Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Voici les étapes pertinentes collées à partir du message ci-dessus:
Étape 1: installez autoconf et mcrypt
J'ai utilisé homebrew pour installer autoconf et mcrypt, ce qui est aussi simple que:
brew install autoconf mcrypt
Si cela ne fonctionne pas pour vous, ou si vous ne souhaitez pas utiliser homebrew, consultez ce tutoriel .
Étape 2: Construisez l'extension PHP
Pour construire l'extension PHP, vous aurez besoin du code source PHP 5.4.17 disponible en téléchargement ici et extrayez-le:
cd ~/Downloads
unzip PHP-5.4.17.Zip
Créez ensuite l'extension à l'aide des commandes suivantes:
cd php-src-PHP-5.4.17/ext/mcrypt/
/usr/bin/phpize
./configure
make
Sudo make install
Étape 3: Activez l'extension
Il ne reste plus qu'à activer l'extension en éditant /etc/php.ini. Si ce fichier n'est pas présent, copiez /etc/php.ini.default et renommez-le:
Sudo cp /etc/php.ini.default /etc/php.ini
Modifiez le fichier /etc/php.ini et ajoutez ce qui suit:
extension=mcrypt.so
Étape 4: Redémarrez Apache Maintenant, redémarrez Apache et vous avez terminé!
Sudo apachectl restart
NOTES SUPPLÉMENTAIRES ET CLARIFICATION
J'ai rencontré deux problèmes en suivant ces étapes:
PHP
fichier Zip que j'ai téléchargé à la version de PHP qui a été installée sur ma machine.J'ai donc fait
php -v
pour déterminer le numéro de version, puis modifié le téléchargement pour correspondre à ce numéro de version. Dans mon cas, la version PHP
était 5.6.28 et j'ai donc dû télécharger la source PHP depuis
https://github.com/php/php-src/archive/PHP-5.6.28.Zip
Sudo make install
, l'exception a été causée par SIP, une sécurité ajoutée par El Capitan
. L'exception est décrite dans cette question , et la résolution de ce problème que j'ai trouvée dans cette réponse .L'application des informations de cette réponse a changé l'étape 2 ci-dessus et remplacé le Sudo make install
avec les éléments suivants:
mkdir -p /usr/local/lib/php/extensions
Sudo make EXTENSION_DIR='/usr/local/lib/php/extensions' install
Notez qu'en raison de cette modification, l'étape 4 ci-dessus doit également être modifiée pour inclure le chemin d'accès à mcrypt.so
. Donc, ce qui suit doit aller dans le php.ini
:
extension=/usr/local/lib/php/extensions/mcrypt.so