¿Qué se necesita para PHP mcrypt_decrypt ()?
Pregunta
Tengo un script que usa la función mcrypt_decrypt (), pero aparece el siguiente error
Error grave: llamada a la función indefinida mcrypt_decrypt ()
¿Qué módulos / bibliotecas debo incluir para usar esta función? ¿O hay alguna otra razón por la que recibo el error?
Gracias
Solución
Por favor vea:
Necesita compilar su PHP con --with-mcrypt [= DIR]
y tener libmcrypt Versión 2.5.6 o superior en su máquina.
Otros consejos
sudo apt-get install php5-mcrypt
funciona en ubuntu.
Configure php5-mcrypt con php5-fpm (Ubuntu 14.04)
Asumiré que ya tienes nginx y php-fpm instalados y en ejecución.
php5-mcrypt ya debería estar instalado (viene incluido con php5-fpm). Solo por seguridad, apt-get install php5-mcrypt
Crear enlace simbólico a mods-avaliable, ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini
Habilítelo. php5enmod mcrypt
Reinicie php-fpm, servicio de reinicio de php5-fpm
Reiniciar nginx, servicio reinicio nginx
¡Listo!
Del manual :
Necesita compilar PHP con el --with-mcrypt [= DIR] parámetro para habilitar esta extensión. DIR es el directorio de instalación de mcrypt. Asegurarse compilas libmcrypt con la opción --disable-posix-threads.
Generalmente, si PHP dice que una función no está definida, significa que necesita compilar en alguna biblioteca.
Lo anterior no funciona, puedes probar esto:
cree el archivo mcrypt.ini en /etc/php5/conf.d con contenido
extension=mcrypt.so
Actualicé PHP a 5.4 a través de http://php-osx.liip.ch/ y funcionó.
para php 5.3.X
depende de la disponibilidad del paquete yum mcrypt, puede usar paquetes yum
así: yum instalar php53-mcrypt y reinicie httpd
Y tenga cuidado con la carpeta en la página phpinfo: " Escanee este directorio para archivos .ini adicionales " y el siguiente: " archivos .ini adicionales analizados " ;.
Después de actualizar a php 5.4 en ejecución (Works)
sudo php5enmod mcrypt
sudo service apache2 restart