php7 mac extension php laravel laravel-4 mcrypt

mac - Laravel requiere la extensión PHP Mcrypt



mcrypt php extension required xampp (22)

sudo php instalar mcrypt

sudo php5enmod mcrypt

Estoy tratando de usar la función de migrate en Laravel 4 en OSX . Sin embargo, estoy recibiendo 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?


En OS X

Utilizando MAMP

Ingrese el comando which php en el terminal para ver qué versión de PHP está utilizando. Si no es la versión de 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 archivo ~/.bash_profile (es decir, el .bash_profile que está en su directorio de inicio) 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 ha seleccionado en MAMP.

Una vez que se haya guardado el archivo, asegúrese de cerrar la Terminal y volver a abrirla. Una vez que haya hecho eso, estará usando el PHP que se envía con MAMP.

Una forma de encontrar fácilmente cuál debe ser la línea que debe colocar dentro de su .bash_profile es ejecutar el siguiente comando dentro de su terminal:

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

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 contenga /usr/local/bin/ (Homebrew) o /opt/local/bin (MacPorts) si está usando PHP que viene con cualquiera de estos dos administradores de paquetes.

Comprobando la ruta de PHP con MacPorts

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

port contents php70 | grep bin/php

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

Compruebe la ruta de PHP con Homebrew-php

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

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

brew --prefix homebrew/php/php56

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


OSX con cerveza

$ brew install mcrypt php70-mcrypt

Estoy ejecutando PHP 7.0.x, así que cambie "php70" a su versión, si está usando una versión diferente.
Como se indica en otras respuestas, puede ver su versión de php con $ php -v .


Para aquellos que todavía vienen aquí hoy:

Laravel ya no necesita la extensión mcrypt . mcrypt está obsoleto, la última actualización de libmcrypt fue en 2007. Laravel 4.2 también está obsoleto y ya no tiene soporte. La mejor solución (= segura) es actualizar a Laravel> 5.1 (no hay LTS antes de Laravel 5.2).

Mcrypt se eliminó de Laravel en junio de 2015: https://github.com/laravel/framework/pull/9041


¿Tienes instalado MAMP ?

Utilice which php en el terminal para ver qué versión de PHP está utilizando.

Si no es la versión de 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:

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

Editado: primero debe usar el comando cd /Applications/MAMP/bin/php para verificar qué versión de PHP de MAMP está utilizando y luego reemplazarla con la versión de PHP anterior.

Luego restart el terminal para ver qué PHP está usando ahora.

Y debería estar funcionando ahora.


A los que usa XAMPP 1.7.3 y Mac.

  1. Ir a la terminal
  2. Ingrese which php
    • Si dice /usr/bin/php , entonces proceda a 3.
  3. Ingrese sudo nano ~/.bash_profile (o sudo vim ~/.bash_profile si sabe cómo usarlo)
  4. Luego pegue esta export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
  5. Ctrl + O luego ingrese para guardar, luego Ctrl + X para salir.
  6. Escribe cd ~
  7. tipo . .bash_profile
  8. reiniciar el terminal.
  9. Introduzca which php . Si lo hiciste bien, debería ser el mismo que el camino en # 4.

La razón del error mcrypt es que su Mac usa su php nativo, necesita cambiarlo por el 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 sudor, y la versión php de xampp está tan desactualizada.


Ampliando 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 ''php'' para mostrar el directorio adecuado. El problema era que otras funciones no funcionaban, como ''php -v''.

Entonces 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ó!


En Ubuntu (PHP-FPM, Nginx)

sudo apt-get install php5-mcrypt

Después de instalar php5-mcrypt

Tienes que hacer un enlace simbólico 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

Mas detalle



Las extensiones habilitadas para web y las extensiones habilitadas para línea de comandos pueden diferir. Ejecute php -m en su terminal y verifique si mcrypt está en la lista. Si no es así, compruebe desde qué línea de comandos está cargando su archivo php.ini ejecutando php --ini desde su terminal.

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

OSX

He escuchado que gente en OSX tiene problemas debido a que el terminal apunta al PHP nativo que se envió 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%):

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

Ubuntu

En versiones anteriores de Ubuntu (antes de la versión 14.04), cuando ejecuta sudo apt-get install php5-mcrypt en realidad no instala la extensión en los mods-available . Tendrás que enlazarlo.

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

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

sudo php5enmod mcrypt sudo service apache2 restart

NOTAS


Mi sistema operativo es Yosemite .

Resuelvo este problema, encontrando rutas de configuración:

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)

Próximos pasos:

  1. Renombrar o borrar el archivo php55 ini
  2. Crear enlace simbólico
  3. Reinicie 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

Luego puedes revisar tus módulos php a través de:

php -m


Necesitas un entorno todo en uno. Puedes 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 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 gratuito al respecto: https://laracasts.com/series/laravel-5-fundamentals/episodes/2

Te aconsejo que vayas con homestead porque preinstalarás todas las herramientas siguientes.

  • Ubuntu 14.04
  • PHP 5.6
  • H HVM
  • Nginx
  • MySQL
  • Postgres
  • Nodo (Con Bower, Grunt y Gulp)
  • Redis
  • Memcached
  • Habichuelas
  • Enviado de Laravel
  • Extensión de tela + HipChat

O usar:

sudo apt-get install php5-mcrypt

No estoy seguro de si esto funcionará en instalaciones estándar de PHP. Instalé php 5.5.7 usando el paquete de:

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


Para las instalaciones de php-fpm en Ubuntu 14.04, lo siguiente funcionó para mí:

sudo apt-get install php5-mcrypt

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

Entonces

sudo php5enmod mcrypt

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

Simplemente reinicie php-fpm services sudo service php5-fpm restart


Para ubuntu prueba estos pasos si otros no funcionan:

  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

Espero que eso ayude. Gracias !


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

brew install homebrew/php/php56-mcrypt

¡Aclamaciones!


Sólo para yumers,

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

Tal vez necesitas instalar remi repo


Si está utilizando el shell Z, haga lo siguiente:

  1. Terminal abierta
  2. sudo nano ~/.zshrc
  3. Pega esto export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
  4. Salvar
  5. Ejecutar source ~/.zshrc
  6. Ejecuta which php - deberías obtener la ruta MAMP 5.6.10

5.6.10 es la versión de PHP que configuraste en tu MAMP.


Usando Ubuntu, solo

sudo php5enmod mcrypt

hizo el truco para mí No necesita reiniciar Apache ya que necesita usar PHP solo desde la CLI.


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


en ubuntu 14.04 basado en su versión 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


Poniendo a Laravel trabajando 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 de ubuntu, comencé a recibir el error mcrypt. Esto después de muchas horas de prueba y error.

haciendo funcionar el comando artesanal

(si tiene un error mcrypt mientras utiliza la herramienta de línea de comandos de artesanos)

Hice muchas pruebas y errores, así que cada vez que ejecutaba el comando php5enmod antes, tenía mensajes de error. pero en la instalación nueva no hubo mensajes de error. Después de este paso conseguí el comando artesanal trabajando

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

arreglando el error del navegador

(si tiene un error de mcrypt en el navegador al acceder a la página de índice de laravel local)

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

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

extension=mcrypt.so

reinicie el servidor apache, limpie el caché de laravel y todo lo que funcione