Laravel requiere la extensión PHP Mcrypt

Resuelto Patrick Reck asked hace 54 años • 22 respuestas

Estoy intentando utilizar la migratefunción en Laravel 4 en OSX. Sin embargo, recibo el siguiente error:

Laravel requires the Mcrypt PHP extension.

Según tengo entendido, ya está habilitado (vea la imagen a continuación).

¿Qué está mal y cómo puedo solucionarlo?

ingrese la descripción de la imagen aquí

Patrick Reck avatar Jan 01 '70 08:01 Patrick Reck
Aceptado

¿Tienes MAMP instalado?

Úselo which phpen la terminal para ver qué versión de PHP está usando.

Si no es la versión PHP de MAMP, debes editarla o agregarla .bash_profileen el directorio de inicio del usuario, es decir:cd ~

En .bash_profile, agregue la siguiente línea:

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

Editado: Primero debes usar el comando cd /Applications/MAMP/bin/phppara verificar qué versión de PHP de MAMP estás usando y luego reemplazar con la versión de PHP anterior.

Luego restartla terminal para ver qué PHP estás usando ahora.

Y debería estar funcionando ahora.

JustinHo avatar May 30 '2013 13:05 JustinHo

Las extensiones habilitadas para la web y las extensiones habilitadas para la línea de comandos pueden diferir. Ejecute php -men su terminal y verifique si mcryptaparece en la lista. Si no es así, verifique desde dónde carga la línea de comando su php.iniarchivo ejecutándolo php --inidesde su terminal.

En este php.iniarchivo puede habilitar la extensión.

OSX

He oído hablar de personas en OSX que tuvieron problemas debido a que el terminal apunta al PHP nativo incluido con OSX. En su lugar, deberías actualizar tu perfil de bash para incluir la ruta real a tu PHP. Algo como esto (en realidad no uso OSX, por lo que es posible que no sea 100%):

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

ubuntu

En versiones anteriores de Ubuntu (anteriores a 14.04), cuando lo ejecuta, sudo apt-get install php5-mcrypten realidad no instala la extensión en el archivo mods-available. Necesitará vincularlo simbólicamente.

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

En todas las versiones de Ubuntu, deberás habilitar el mod una vez que esté instalado. Puedes hacer eso con php5enmod.

sudo php5enmod mcrypt
sudo service apache2 restart

NOTAS

  • PHP 7.1 dejó obsoleto a mcrypt y 7.2 eliminó la extensión mcrypt por completo
  • Laravel 5.1 y posteriores eliminaron la necesidad de mcrypt
Jason Lewis avatar May 30 '2013 09:05 Jason Lewis

Para aquellos que usan XAMPP 1.7.3 y Mac

  1. Ir a terminal
  2. Ingresarwhich php
    • Si dice /usr/bin/php, continúe con 3.
  3. Entra sudo nano ~/.bash_profile(o sudo vim ~/.bash_profilesi sabes usarlo)
  4. Luego pega estoexport PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
  5. Ctrl+Oluego ingrese para guardar, luego Ctrl+Xpara salir.
  6. Tipocd ~
  7. tipo. .bash_profile
  8. reiniciar terminal.
  9. Ingresar which php. Si lo hiciste bien, debería ser el mismo que el camino en el n.° 4.

El motivo del error de mcrypt es que tu Mac usa su php nativo, debes cambiarlo por el que tiene xampp.

PD: Recomiendo usar MAMP para Laravel 4 para usuarios de Mac, este problema se resolverá junto con el error de información del archivo php sin problemas, y la versión php de xampp está muy desactualizada.

Bryan P avatar Jun 19 '2013 13:06 Bryan P

Para usuarios que no son MAMP o XAMPP en OSX (con homebrew instalado):

brew install homebrew/php/php56-mcrypt

¡Salud!

oozzal avatar Nov 18 '2013 03:11 oozzal