Estoy tratando de usar la migrate
función en Laravel 4
on OSX
. Sin embargo, recibo el siguiente error:
Laravel requires the Mcrypt PHP extension.
Por lo que entiendo, ya está habilitado (ver la imagen a continuación).
¿Qué está mal y cómo puedo solucionarlo?
Respuestas:
Las extensiones habilitadas para la web y las extensiones habilitadas para la línea de comandos pueden ser diferentes. Ejecute
php -m
en su terminal y verifique simcrypt
está en la lista. Si no es así, verifique desde dónde la línea de comando está cargando suphp.ini
archivo ejecutándosephp --ini
desde su terminal.En este
php.ini
archivo puede habilitar la extensión.OSX
He oído hablar de personas en OSX que se enfrentan a problemas debido a que el terminal apunta al PHP nativo enviado con OSX. En su lugar, debe actualizar su perfil de bash para incluir la ruta real a su PHP. Algo como esto (en realidad no uso OSX, por lo que podría no ser del 100%):
Ubuntu
En versiones anteriores de Ubuntu (anteriores a 14.04) cuando lo ejecuta,
sudo apt-get install php5-mcrypt
en realidad no instala la extensión en elmods-available
. Tendrás que vincularlo.En todas las versiones de Ubuntu, deberá habilitar el mod una vez que esté instalado. Puedes hacer eso con
php5enmod
.fuente
sudo apt-get install php5-mcrypt
no instala realmente la extensión por completo.¿Tienes instalado MAMP ?
Use
which php
en la terminal para ver qué versión de PHP está usando.Si no es la versión PHP de MAMP, debe editar o agregar
.bash_profile
en el directorio de inicio del usuario, es decir:cd ~
En
.bash_profile
, agregue la siguiente línea:Editado: Primero debe usar el comando
cd /Applications/MAMP/bin/php
para verificar qué versión de PHP de MAMP está usando y luego reemplazar con la versión de PHP anterior.Luego,
restart
el terminal para ver qué PHP está utilizando ahora.Y debería estar funcionando ahora.
fuente
export PATH=/Applications/AMPPS/php-5.4/bin:$PATH
... suponiendo que esté disparando para 5.4.xx, también hay 5.3 y 5.5.cd ~
es muy importante, debes abrir el.bash_profile
que existe allí, TAMBIÉN importante es que debes cerrar tu terminal y volver a abrir para que se carguen las nuevas variables de bash. Solo asegúrese de ejecutar qué php para verificar que se haya aplicado su cambio, ¡feliz codificación!Para aquellos que usan XAMPP 1.7.3 y Mac
which php
/usr/bin/php
, entonces proceda a 3.sudo nano ~/.bash_profile
(osudo vim ~/.bash_profile
si sabe cómo usarlo)export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
cd ~
. .bash_profile
which php
. Si lo hiciste bien, debería ser el mismo que la ruta en el n. ° 4.La razón del error de mcrypt es porque su Mac usa su php nativo, debe cambiarlo al que tiene xampp.
PD: recomendaría 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.
fuente
"export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH"
export PATH="/opt/lampp/bin:$PATH"
Para usuarios que no sean MAMP o XAMPP en OSX (con homebrew instalado):
brew install homebrew/php/php56-mcrypt
¡Salud!
fuente
$ brew install homebrew/php/php55-mcrypt
, de lo contrario tieneError: No available formula with the name "php55-mcrypt"
Usando Ubuntu, solo
hizo el truco para mí No necesita reiniciar Apache ya que necesita usar PHP solo desde la CLI.
fuente
En Ubuntu (PHP-FPM, Nginx)
Después de instalar php5-mcrypt
tienes que hacer un enlace simbólico a archivos ini en mods-available:
habilitar:
reiniciar php5-fpm:
Mas detalle
fuente
sudo aptitude -y install php5-mcrypt
, seguido desudo php5enmod mcrypt
ysudo service php5-fpm restart
. (Me salté el paso de vinculación suave). Funcionó :)Hacer que Laravel trabaje en Apache
Versión de PHP: PHP 5.5.9
Versión de Ubuntu: 14.04
Tuve un proyecto de trabajo de Laravel en Windows. cuando lo copié al servidor ubuntu, comencé a recibir el error mcrypt. esto después de muchas horas de prueba y error
conseguir que el comando artesanal funcione
(si tiene un error mcrypt mientras usa la herramienta de línea de comando artesanal)
Hice muchas pruebas y errores, así que cada vez que ejecutaba el comando php5enmod antes, tenía mensajes de error. pero en la nueva instalación no hubo mensajes de error. después de este paso conseguí que el comando artesanal funcionara
arreglando el error del navegador
(si tiene un error mcrypt en el navegador al acceder a la página de índice de laravel local)
agregue la siguiente línea en la sección de extensiones compiladas dinámicamente de php ini
reinicie el servidor apache, purgue el caché laravel y todo funcione
fuente
docker-php-ext-install mcrypt
. Probado en la imagen:php:5.6.31-apache
. Sin eso,php -m
no se muestramcrypt
.Para las instalaciones de php-fpm en Ubuntu 14.04, lo siguiente funcionó para mí:
sudo apt-get install php5-mcrypt
Esto creará un
mcrypt.ini
archivo dentro/etc/php5/mods-available/
Entonces
sudo php5enmod mcrypt
creará un enlace simbólico en:
/etc/php5/fpm/conf.d/
Simplemente reinicie los servicios php-fpm
sudo service php5-fpm restart
fuente
Para ubuntu, intente estos pasos si otros no funcionan:
cd ~
sudo apt-get remove php5-mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart
Espero que eso ayude. Gracias !
fuente
O usar:
no estoy seguro de si esto funcionará en las instalaciones estándar de PHP. Lo instalé
php 5.5.7
usando el paquete de:fuente
Mi sistema operativo es
Yosemite
.Resuelvo este problema, encontrando rutas de configuración:
Salida de ejemplo:
Próximos pasos:
Comandos:
Luego puede verificar sus módulos php a través de:
fuente
Solo por años,
Tal vez necesites instalar remi repo
fuente
Esto lo resolvió para mí en mi entorno local Linux Mint /ubuntu/350942/cannot-get-mcrypt-for-php5
Necesitaba hacer un enlace simbólico a mi archivo /etc/php5/conf.d/mcrypt.ini en las siguientes carpetas /etc/php5/apache2/conf.d/mcrypt.ini y /etc/php5/cli/conf.d /mcrypt.ini
fuente
Necesita un entorno todo en uno. Puede usar MAMP o XAMPP o cualquier otra herramienta. Después de instalar una de estas herramientas, deberá editar (crear) su .bash_profile (suponiendo que use bash).
O incluso simple y más profesional puede usar Laravel Homestead.
Aquí hay un enlace a la documentación oficial: http://laravel.com/docs/5.0/homestead
También Jeffrey tiene un tutorial gratuito al respecto: https://laracasts.com/series/laravel-5-fundamentals/episodes/2
Te aconsejo que vayas con Homestead porque preinstalarás todas las siguientes herramientas.
fuente
Expandiendo en @JetLaggy:
Después de intentar una y otra vez modificar .bash_profile con el directorio MAMP, cambié los permisos de archivo para el directorio php de MAMP y pude obtener 'qué php' para mostrar el directorio apropiado. El problema era que otras funciones no funcionaban, como 'php -v'.
Así que actualicé MAMP. http://documentation.mamp.info/en/mamp/installation/updating-mamp
Esto hizo el truco para mi configuración particular. Tuve que ajustar mi RUTA para reflejar la versión actualizada de PHP, pero una vez que lo hice, ¡todo funcionó!
fuente
En OS X
Usando MAMP
Ingrese el comando
which php
en la terminal para ver qué versión de PHP está utilizando. Si no es la versión PHP de MAMP, la variable $ PATH utilizada por Bash deberá actualizarse.Primero, debe usar el comando "cd / Applications / MAMP / bin / php" para verificar qué versión de php de MAMP y tomar nota de la versión (por ejemplo, php5.6.7).
Una vez que conozca la versión, debe editar el
~/.bash_profile
archivo (es decir, el.bash_profile
que está en su directorio de inicio) y agregar una línea de exportación:Asegúrese de reemplazar php5.6.7 con la versión de PHP que ha seleccionado en MAMP.
Una vez que el archivo se ha guardado, asegúrese de cerrar, cerrar su Terminal y volver a abrirlo. Una vez hecho esto, utilizará el PHP que se incluye con MAMP.
Una forma de encontrar fácilmente cuál debería ser la línea que necesita poner dentro de su
.bash_profile
es ejecutar el siguiente comando dentro de su terminal:Copiar y pegar esas tres líneas en su terminal generará correctamente la versión de PHP que se ha seleccionado dentro del panel de control de MAMP.
Usando Homebrew / MacPorts
Asegúrese de que su
path
contiene/usr/local/bin/
(Homebrew) o/opt/local/bin
(MacPorts) si está utilizando PHP que viene con cualquiera de estos dos administradores de paquetes.Comprobación de la ruta PHP con MacPorts
Puede encontrar la ubicación exacta de PHP usando MacPorts con el siguiente comando:
Tenga en cuenta que debe reemplazar
php70
con la versión de PHP que ha instalado.Verifique la ruta PHP con Homebrew-php
Homebrew-php ( https://github.com/Homebrew/homebrew-php ) es un grifo que tiene varias versiones diferentes de PHP.
Puede encontrar la ubicación exacta de PHP usando Homebrew con el siguiente comando:
Tenga en cuenta que debe reemplazar
php56
con la versión de PHP que ha instalado.fuente
en Ubuntu 14.04
Ubuntu 16.04
Ubuntu 18.04
o
fuente
Si está utilizando Z Shell, simplemente haga lo siguiente:
nano ~/.zshrc
export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
source ~/.zshrc
which php
: debe obtener la ruta MAMP 5.6.105.6.10 es la versión de PHP que configuró en su MAMP.
fuente
OSX con cerveza
Estoy ejecutando PHP 7.0.x, así que cambie "php70" a su versión, si está utilizando una versión diferente.
Como se indica en otras respuestas, puede ver su versión de PHP con
$ php -v
.fuente
Para aquellos que todavía vienen aquí hoy:
Laravel ya no necesita
mcrypt
extensión .mcrypt
está obsoleto, la última actualización de libmcrypt fue en 2007. Laravel 4.2 también está obsoleto y no tiene más soporte. La mejor solución (= segura) es actualizar a Laravel> 5.1 (no hay LTS antes de Laravel 5.2).Mcrypt fue eliminado de Laravel en junio de 2015: https://github.com/laravel/framework/pull/9041
fuente
fuente
mcrypt
, ¿podría explicar por qué cree que esto solucionará el problema de OP?en ubuntu 14.04 basado en su versión de php: 5.6,7.0,7.1,7.2,7.3
fuente