mcrypt_get_iv_size mcrypt_encrypt mcrypt_create_iv mcrypt_3des php osx-mountain-lion mcrypt laravel

php - mcrypt_encrypt - no se puede encontrar mcrypt=> Llamada a la función indefinida Laravel / mcrypt_create_iv()



mcrypt_get_iv_size (10)

Esto es lo que finalmente funcionó para mí:

brew reinstall --with-homebrew-curl --with-httpd php56 brew reinstall --build-from-source php56-mcrypt

También tuve que hacer sudo chmod 777 /usr/local/etc/php/5.6/conf.d porque recibí errores cuando la segunda brew reinstall intentó agregar ext-mcrypt.ini a ese directorio.

Tratando de configurar Laravel y seguir siendo golpeado con este error. Instalé mcrypt a través de brew y está ubicado en / usr / local / Cellar. ¿Alguna idea? .. No aparece en el comando terminal php -m tampoco, si eso importa. Estoy ejecutando Mountaion Lion con el servidor web nativo de Mac.


Instalé php y mcrypt con Homebrew, pero todavía experimenté este error después de brew update varias veces. Creo que mi configuración se ha vuelto un poco aburrida con el tiempo.

Resultó que mi php se estaba configurando desde /private/etc/php.ini , no /usr/local/etc/php/5.4/php.ini como recomienda Homebrew. Mcrypt ni siquiera se incluye desde /usr/local/etc/php/5.4/ext-mcrypt.ini, lo que no tiene mucho sentido, teniendo en cuenta que php -i produce para mí:

Configuration File (php.ini) Path => /usr/local/etc/php/5.4 Loaded Configuration File => /usr/local/etc/php/5.4/php.ini Scan this dir for additional .ini files => /usr/local/etc/php/5.4/conf.d Additional .ini files parsed => /usr/local/etc/php/5.4/conf.d/ext-mcrypt.ini

Mi solución:

  1. Edite /private/etc/php.ini como superusuario
  2. Agregue extension="/usr/local/Cellar/php54-mcrypt/5.4.28/mcrypt.so" y guarde
  3. Reinicie Apache con sudo apachectl restart

Instaló mcrypt cuando realmente quería el php56-mcrypt php.

Usted indicó en su pregunta que puede ver que mcrypt instalado en /usr/local/Cellar y que está usando OSX . Entonces, la manera más fácil de instalar el módulo mcrypt PHP en OSX usando Homebrew es:

// assuming you have php56 brew install php56-mcrypt

Si homebrew no puede encontrar el paquete correcto, es posible que deba tocar los repositorios de PHP que se encuentran en GitHub :

brew tap homebrew/dupes brew tap homebrew/versions brew tap homebrew/homebrew-php

Ahora cuando brew search mcrypt el comando brew search mcrypt , deberías ver algo como:

libtomcrypt mcrypt php53-mcrypt php54-mcrypt php55-mcrypt php56-mcrypt

Varios otros carteles han mencionado la necesidad de editar su archivo php.ini . Esto será innecesario ya que homebrew se encargará de activar el módulo por usted. Coloca el archivo de configuración en /usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini


No tiene instalada la extensión PHP de mcrypt.

Para una Mac, seguí estas instrucciones: coolestguyplanettech.com/… .

Se parecen mucho, pero no lo es, es muy fácil de seguir, ¡funciona!


Prueba sudo php5enmod mcrypt && sudo service apache2 restart


Puede haber instalado mycrypt pero no tener el módulo php_mcrypt instalado / habilitado.


Solo una nota para las personas que se actualizaron recientemente a PHP 7: la biblioteca MCRYPT ha quedado en deprecated . Si actualizaste a PHP 7 y ahora estás viendo este error, esa es la razón. Debe cambiar a una biblioteca alternativa, algunas alternativas se mencionan en este hilo .


Ubuntu o cualquier usuario de Linux basado en Debian puede instalar el paquete requerido con apt-get :

sudo apt-get install php5-mcrypt

Recuerde reiniciar el servidor web después:

sudo service apache2 restart

Si aún no funciona, intente vincular el archivo de configuración a la carpeta de configuración adecuada para el servidor web. Gracias a dave1010 por esta pista en los comentarios.

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/ # for Apache sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/cli/conf.d/ # for CLI

Y nuevamente, reinicie el servidor web:

sudo service apache2 restart

Quizás, si aún no está trabajando, también necesita la línea mostrada por @RahulPrasad, con php5enmod mcrypt .


Vaya a la carpeta CLI en su instalación de php, y encuentre php.ini allí y habilite mcrypt. Terminal a veces usa otro php.ini, que generalmente está en la carpeta CLI.


También debe habilitarlo en su archivo php.ini y probablemente reinicie Apache.

En php.ini encontrará ;mcrypt.so y eliminará ; de eso.

O, si no está allí, solo agrega mcrypt.so algún lugar.

Además, la opción de sal ha quedado obsoleta a partir de PHP 7.0.0. Ahora se prefiere simplemente usar la sal que se genera de manera predeterminada.