Estoy tratando de usar el migrate función en Laravel 4 en OSX. Sin embargo, obtengo el siguiente error:

Laravel requires the Mcrypt PHP extension.

Tan lejos como yo lo entiendo, ya está habilitado (ver imagen abajo).

Lo que está mal y cómo puedo solucionarlo?

Laravel requiere la Mcrypt PHP extensión

¿Usar Laravel 3 o 4?
Acaba de agregar la info del post. Es Laravel 4
Tal vez este post te ayudará a: stackoverflow.com/questions/14476181/…
Estás utilizando una función en PHP, o instalar otra versión? Si es así, ¿cómo se instala?
He encontrado esta solución fácil de usar homebrew: jorble.com/2013/04/install-php-mcrypt-in-macosx

OriginalEl autor Patrick Reck | 2013-05-30

22 Comentarios

  1. 234

    La web habilitada por las extensiones de la línea de comandos y habilita las extensiones pueden ser diferentes. Ejecutar php -m en su terminal y comprobar para ver si mcrypt está en la lista. Si no, a continuación, comprobar que la línea de comandos es la carga de su php.ini archivo desde ejecutando php --ini de su terminal.

    En este php.ini archivo puede habilitar la extensión.

    OSX

    He escuchado de personas que en OSX ejecutando en problemas debido a la terminal que apunta a la nativa de PHP se entregan con OSX. En su lugar usted debe actualizar su perfil de bash para incluir la ruta de acceso real a su PHP. Algo como esto (yo en realidad no uso OSX, así que esto no puede ser el 100%):

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

    Ubuntu

    En versiones anteriores de Ubuntu (antes 14.04) cuando se ejecuta sudo apt-get install php5-mcrypt que en realidad no instalar la extensión en el mods-available. Usted necesitará un enlace simbólico a él.

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

    En todas las versiones de Ubuntu tendrás que activar el mod una vez instalado. Usted puede hacer eso con php5enmod.

    sudo php5enmod mcrypt
    sudo service apache2 restart

    NOTAS

    esto funcionó para mí en Ubuntu, gracias! Extraño cómo sudo apt-get install php5-mcrypt en realidad no instalar la extensión totalmente.
    Ubuntu 13.10 – yo también tuve que instalar mcrypt sí mismo
    Al parecer ya se había instalado la mcrypt ini en mods-available, yo no era consciente de la php5enmod comando. El uso que hace el trabajo como un encanto. Gracias!
    Tan sólo en esto, he mcrypt aparece cuando voy php -m, cuando me vaya que php se dice que /usr/local/bin/php. He intentado instalar mcrypt con cerveza y parecía haber funcionado.. Pero Laravel todavía dice Mcrypt PHP extensión requerida.
    Como @imkingdavid yo también no requieren el enlace simbólico. php5enmod era suficiente. Ubuntu 14.04 LTS

    OriginalEl autor Jason Lewis

  2. 327

    ¿Tienes MAMP instalado?

    Uso which php en la terminal para ver que versión de PHP que está utilizando.

    Si no es la versión de PHP de MAMP, usted debe editar o añadir .bash_profile en el directorio de inicio del usuario, que es : cd ~

    En .bash_profile, añadir la siguiente línea:

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

    Editado: en Primer lugar usted debe usar el comando cd /Applications/MAMP/bin/php para comprobar qué versión de PHP de MAMP está utilizando y, a continuación, reemplace con la versión de PHP anteriores.

    Luego restart el terminal para ver que PHP está utilizando ahora.

    Y debe estar funcionando ahora.

    Usted no necesita MAMP para obtener Mcrypt.
    por supuesto, usted no necesita MAMP para obtener Mcrypt. esta respuesta es solo para personas que tienen varias versiones de PHP instalado en su equipo, dicen XAMPP o MAMP, u otros.
    Del mismo modo, para AMPPS usuarios: export PATH=/Applications/AMPPS/php-5.4/bin:$PATH …suponiendo que estamos buscando 5.4.xx, también hay 5.3 y 5.5 allí.
    Todo el mundo no uso MAMP, usted tiene una respuesta para el resto de la gente?
    Solo que pensé que me gustaría señalar que la cd ~ es muy importante, usted debe abrir el .bash_profile que existe, TAMBIÉN es importante que se debe cerrar el terminal y volver a abrir para que el nuevo bash se cargan las variables. Sólo asegúrese de ejecutar que php para verificar el cambio se ha aplicado, feliz de codificación!

    OriginalEl autor JustinHo

  3. 138

    A los que usa XAMPP 1.7.3 y Mac

    1. Ir a la Terminal
    2. Entrar which php
      • Si dice /usr/bin/php, a continuación, proceder a 3.
    3. Entrar sudo nano ~/.bash_profile (o sudo vim ~/.bash_profile si usted sabe cómo usarlo)
    4. A continuación, pegue este export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
    5. Ctrl+O, a continuación, enter para guardar, a continuación, Ctrl+X para salir.
    6. Tipo cd ~
    7. tipo . .bash_profile
    8. reinicie el terminal.
    9. Entrar which php. Si usted hizo lo correcto, debe ser la misma que la ruta de acceso en el #4.

    La razón por la mcrypt error es porque tu Mac utiliza su nativa de php, usted necesita para cambiar a la xampp tiene.

    P. S.
    Me gustaría recomendar el uso MAMP para Laravel 4 para los usuarios de Mac, este problema se resolverá junto con el archivo php info de error sin el sudor, y la versión de php de xampp es tan anticuado.

    También una buena respuesta! Debe ser esto para MAMP: "export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH"
    para aquellos que no han ~/.bash_profile, intente comprobar el ~/.bashrc
    Lo que hace la línea 7 (de tipo . .bash_profile)?
    ejecuta el .bash_profile inmediatamente, normalmente es necesario reiniciar para aquellos bash para ejecutar
    Algo malo pasó y ahora mi terminal no reconocerá sudo

    OriginalEl autor Bryan P

  4. 82

    Para no MAMP o XAMPP los usuarios de OSX (con homebrew instalado):

    brew install homebrew/php/php56-mcrypt

    Saludos!

    Yo estaba preocupado de que esto no iba a funcionar de forma nativa con OSX PHP, pero acabo de instalar y que no tenía que meterse con mi CAMINO ni nada. Simplemente funciona. Uno agradable.
    Sería genial tener esta respuesta que se anexa a las principales respuestas en este hilo, para hacer una más completa de recursos. Gracias por el asesoramiento rápido, como Lauren se mencionó, esto realmente soluciona el problema.
    Y reinicie el terminal una vez finalizado este comando 🙂
    Esto es en realidad $ brew install homebrew/php/php55-mcrypt, de lo contrario tienes Error: No available formula with the name "php55-mcrypt"

    OriginalEl autor oozzal

  5. 43

    Usando Ubuntu, solo

    sudo php5enmod mcrypt

    hizo el truco para mí. No es necesario reiniciar Apache, ya que se necesita el uso de PHP sólo desde la CLI.

    OriginalEl autor mppfiles

  6. 35

    En Ubuntu (PHP-FPM,Nginx)

    sudo apt-get install php5-mcrypt

    Después de instalar php5-mcrypt

    usted tiene para hacer un enlace a los archivos ini en mods-available:

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

    habilitar:

    sudo php5enmod mcrypt

    reiniciar php5-fpm:

    sudo service php5-fpm restart

    Más detalles

    Corrí sudo aptitude -y install php5-mcrypt, seguido por sudo php5enmod mcrypt y sudo service php5-fpm restart. (Me he saltado la suave vinculación de paso). Funcionó 🙂

    OriginalEl autor Nanhe Kumar

  7. 22

    Llegar Laravel trabajando en Apache

    Versión de PHP : PHP 5.5.9

    Versión de Ubuntu : 14.04

    yo tenía un trabajo laravel proyecto en windows. cuando he copiado a ubuntu server , empecé a tener la mcrypt error. esto después de un montón de horas de ensayo y error

    llegar artesanal de comandos de trabajo

    (si usted está teniendo mcrypt de error mientras utiliza artesanal herramienta de línea de comandos)

    hice un montón de prueba y error, por lo que cada vez que ejecuto el php5enmod comando antes, yo había mensajes de error. pero en la nueva instalación no había mensajes de error. después de este paso tengo artesanal de comandos de trabajo

    sudo rm /etc/php5/mods-available/mcrypt.ini
    sudo apt-get purge php5-mcrypt
    sudo apt-get install mcrypt
    sudo apt-get install php5-mcrypt
    sudo php5enmod mcrypt

    arreglar el error del navegador

    (si usted está teniendo mcrypt de error en el navegador al acceder a locales laravel página de índice)

    sudo nano /etc/php5/apache2/php.ini

    agregue la siguiente línea debajo de la compila dinámicamente sección de extensiones de php ini

    extension=mcrypt.so

    reiniciar el servidor apache , hay que purgar el laravel caché y todo funcionando

    Si usted está trabajando en php ventana acoplable imagen, usted también necesita ejecutar docker-php-ext-install mcrypt. Probado en la imagen: php:5.6.31-apache. Sin que, php -m no muestra mcrypt.

    OriginalEl autor Sojan V Jose

  8. 17

    O, uso:

    sudo apt-get install php5-mcrypt

    no estoy seguro si esto va a funcionar en el estándar de PHP instala – he instalado php 5.5.7 utilizando el paquete desde :

    sudo add-apt-repository ppa:ondrej/php5 
    sudo apt-get update

    OriginalEl autor JoeTidee

  9. 16

    Para php-fpm instalaciones en Ubuntu 14.04, la siguiente trabajó para mí :

    sudo apt-get install php5-mcrypt

    Esto creará mcrypt.ini archivo dentro de /etc/php5/mods-available/

    Luego

    sudo php5enmod mcrypt

    va a crear un enlace simbólico en: /etc/php5/fpm/conf.d/

    Sólo tienes que reiniciar php-fpm servicios
    sudo service php5-fpm restart

    OriginalEl autor Prateek Choudhary

  10. 16

    Para ubuntu, prueba estos pasos si los demás no son de trabajo :

    1. cd ~
    2. sudo apt-get remove php5-mcrypt
    3. sudo apt-get install php5-mcrypt
    4. sudo php5enmod mcrypt
    5. sudo service apache2 restart

    La esperanza de que le ayudará. Gracias !

    OriginalEl autor Sagiruddin Mondal

  11. 13

    Mi sistema operativo es Yosemite.

    Puedo resolver este problema, mediante la búsqueda de la configuración de las rutas de acceso:

    php --ini

    Ejemplo de salida:

    Configuration File (php.ini) Path: /usr/local/etc/php/5.5
    Loaded Configuration File:         /usr/local/etc/php/5.5/php.ini
    Scan for additional .ini files in: /usr/local/etc/php/5.5/conf.d
    Additional .ini files parsed:      (none)

    Siguientes pasos:

    1. Cambiar el nombre o Eliminar php55 archivo ini
    2. Crear un enlace simbólico
    3. Reiniciar el servidor Apache,

    Comandos:

    mv /usr/local/etc/php/5.5/php.ini /usr/local/etc/php/5.5/php.ini.default
    ln -s /etc/php.ini /usr/local/etc/php/5.5/php.ini
    sudo apachectl restart

    Entonces usted puede comprobar sus módulos php a través de:

    php -m

    OriginalEl autor d.danailov

  12. 13

    Sólo para yumers,

    yum install php-mcrypt
    service httpd restart
    chown -R apache:apache apppath

    Tal vez usted necesita instalar remi repo

    OriginalEl autor Sean

  13. 11

    Necesita un todo en un ambiente. Usted puede utilizar MAMP o XAMPP o cualquier otra herramienta. Después de instalar una de estas herramientas que se necesitan para editar(crear) su .bash_profile(Suponiendo que usar bash).

    O incluso simples y más profesional puede utilizar Laravel Homestead.

    Aquí hay un enlace a la documentación oficial: http://laravel.com/docs/5.0/homestead

    También Jeffrey tiene un tutorial al respecto:
    https://laracasts.com/series/laravel-5-fundamentals/episodes/2

    Te aconsejo que te vayas con homestead, porque le permite instalar las siguientes herramientas.

    • Ubuntu 14.04
    • PHP 5.6
    • HHVM
    • Nginx
    • MySQL
    • Postgres
    • Nodo (Con Bower, Gruñido, y Gulp)
    • Redis
    • Memcached
    • De beanstalk
    • Laravel Enviado
    • Tela + HipChat Extensión

    OriginalEl autor mburakergenc

  14. 9

    Ampliando @JetLaggy:

    Después de intentar una y otra vez a modificar .bash_profile con el MAMP directorio, he cambiado los permisos del archivo para el MAMP directorio de php y fue capaz de obtener ‘que php’ para mostrar el directorio adecuado. Problema era que otras funciones no funcionan, tales como «php -v’.

    Así que he actualizado MAMP. http://documentation.mamp.info/en/mamp/installation/updating-mamp

    Esto hizo que el truco para mi en particular el programa de instalación. Tuve que ajustar mi CAMINO para reflejar la actualización de la versión de PHP, pero una vez que lo hice, todo funcionó!

    OriginalEl autor abaumer

  15. 7

    En OS X

    Usando MAMP

    Introduzca el comando which php en la terminal para ver que versión de PHP que está utilizando. Si no es la versión de PHP de MAMP, la variable $PATH utilizado por Bash tendrá que ser actualizada.

    Primer lugar, usted debe usar el comando «cd /Applications/MAMP/bin/php» para comprobar qué versión de php de MAMP y tomar nota de la versión (por ejemplo, php5.6.7).

    Una vez que se conoce la versión, debes editar el ~/.bash_profile archivo (es decir, la .bash_profile que está en tu directorio home) y agregar una línea de exportación:

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

    Asegúrese de reemplazar php5.6.7 con la versión de PHP que usted ha seleccionado en MAMP.

    Una vez que el archivo se haya guardado, asegúrese de que usted cerca de cerrar su Terminal y abrirlo de nuevo. Una vez que se ha hecho, se va a utilizar el PHP que se incluye con MAMP.


    Una manera fácil de encontrar lo que la línea debe ser que usted necesita para poner en el interior de su .bash_profile es ejecutar el siguiente comando en el interior de su terminal:

        echo export PATH=`cat /Applications/MAMP/conf/apache/httpd.conf \
             | grep php | grep -i LoadModule | head -n1 \
             | sed -e 's/^[^\/]*\/\(.*\)\/mod.*/\//'`/bin:$PATH

    Copiar y pegar esos tres líneas en la terminal correctamente la salida de la versión de PHP que ha sido seleccionado dentro de la MAMP panel de control.

    El Uso De Homebrew/MacPorts

    Asegúrese de que su path contiene /usr/local/bin/ (Homebrew) o /opt/local/bin (MacPorts) si está usando PHP que viene con cualquiera de estos dos gestores de paquetes.

    Comprobar el PHP ruta con MacPorts

    Usted puede encontrar la ubicación exacta de PHP usando MacPorts con el siguiente comando:

    port contents php70 | grep bin/php

    Tenga en cuenta que usted debe reemplazar php70 con la versión de PHP que tienes instalado.

    Comprobar el PHP ruta con Homebrew-php

    Homebrew-php (https://github.com/Homebrew/homebrew-php) es un grifo que tiene diferentes versiones de PHP.

    Usted puede encontrar la ubicación exacta de PHP usando Homebrew con el siguiente comando:

    brew --prefix homebrew/php/php56

    Tenga en cuenta que usted debe reemplazar php56 con la versión de PHP que tienes instalado.

    OriginalEl autor Tim Groeneveld

  16. 3

    Si usted está usando Z Shell, solo haz lo siguiente:

    1. Abrir terminal
    2. sudo nano ~/.zshrc
    3. Pegar este; export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
    4. Guardar
    5. Ejecutar source ~/.zshrc
    6. Ejecutar which php – usted debe obtener el MAMP 5.6.10 camino

    5.6.10 es la versión de PHP que establece en su MAMP.

    OriginalEl autor Unwired

  17. 3

    en Ubuntu 14.04

    sudo apt-get install php5-mcrypt
    sudo php5enmod mcrypt

    Ubuntu 16.04

    sudo apt-get install php-mcrypt
    sudo phpenmod mcrypt

    OriginalEl autor Gowthaman

  18. 1

    OSX con cerveza

    $ brew install mcrypt php70-mcrypt

    Estoy ejecutando PHP 7.0.x, de modo que el cambio «php70» a tu versión, si usted está utilizando una versión diferente.

    Como se dijo en otras respuestas, usted puede ver su versión de php con $ php -v.

    OriginalEl autor kris

  19. 1

    Para aquellos que todavía venido hoy aquí:

    Laravel no necesita mcrypt extensión de más. mcrypt es obsoleto, la última actualización de libmcrypt fue en 2007. Laravel 4.2 es obsoleto demasiado, y no tiene más apoyo. La mejor (=seguro) la solución es actualizar a Laravel >5.1 (no hay LTS antes de Laravel 5.2).

    Mcrypt fue retirado de Laravel en junio de 2015: https://github.com/laravel/framework/pull/9041

    He solucionado mi problema mediante la ejecución de homestead disposición

    OriginalEl autor rap-2-h

  20. 0

    en ubuntu 14.04 en función de su versión de php : 5.6,7.0,7.1,7.2,7.3

    sudo apt-get install php{versión}-mcrypt

    sudo apt-get install php7.1-mcrypt
    
    sudo phpenmod mcrypt 

    OriginalEl autor Jignesh Joisar

  21. -1

    sudo php instalar mcrypt

    sudo php5enmod mcrypt

    Mientras que su comentario podría ser técnicamente cierto nos esforzamos para incluir alguna explicación a sus respuestas aquí en StackOverflow. Además parece que el OP ya instalado mcrypt, podría ampliar por qué crees que esto va a solucionar OP problema?

    OriginalEl autor Anubhav Tiwari

Dejar respuesta

Please enter your comment!
Please enter your name here