Fatal error: Llamada a MCRYPT_ENCRYPT función no definida ()
Pregunta
Nota: Las bibliotecas de soporte MCrypt dependerá de que no se han actualizado en años y MCrypt ya no debe ser considerado como un método viable o seguro de encriptación de datos. Lo que es más, MCrypt ya no se utiliza en PHP 5, y se retira completamente en PHP 7. Si tiene cualquier código que se ejecuta MCrypt que debe refactorizar utilizar una biblioteca de cifrado más moderno.
¿Alguien sabe por qué este mensaje de error:? Pantallas (Call to undefined function mcrypt_encrypt() )
cuando corro el siguiente código a continuación
Me estoy perdiendo algunos pasos quizás cualquier configuración en PHP que tengo que hacer antes de que este código puede trabajar?
$key = 'password to (en/de)crypt';
$string = 'string to be encrypted';
$test = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key),
$string, MCRYPT_MODE_CBC, md5(md5($key)));
Solución
Lo que había trabajado para mí con la versión de PHP 5.2.8, fue abrir php.ini
y permitir la extensión php_mcrypt.dll
quitando el ;
, es decir, cambiar:
;extension=php_mcrypt.dll
a extension=php_mcrypt.dll
Otros consejos
Si ha actualizado recientemente para ubuntu 14.04 aquí es la solución a este problema:
$ sudo mv /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
$ sudo php5enmod mcrypt
$ sudo service apache2 restart
Para las ventanas
;extension=php_mcrypt.dll to extension=php_mcrypt.dll
then restart your apache server
Para Redhat
sudo yum install php55-mcrypt //if php5.5
sudo yum install php-mcrypt //if less than 5.4
sudo service httpd restart //if apache 2.4
sudo /etc/init.d/httpd restart //if apache 2.2 or less
Para Ubuntu
sudo apt-get install php5-mcrypt
sudo service apache2 restart //if server not reloaded automatically
Todavía no funciona?
sudo php5enmod mcrypt && sudo servicio apache2 restart
Usted no tiene instalada la biblioteca mcrypt.
http://www.php.net/manual/en/ mcrypt.setup.php para más información.
Si usted está en alojamiento compartido, puede preguntar a su proveedor para instalarlo.
En OSX se puede instalar fácilmente a través de mcrypt homebrew
brew install php54-mcrypt --without-homebrew-php
A continuación, añadir esta línea a /etc/php.ini.
extension="/usr/local/Cellar/php54-mcrypt/5.4.24/mcrypt.so"
Si está usando PHP 7.2 o arriba:
Esta función está desfasada en PHP 7.1.0, y suprimir en PHP 7.2.0.
Fuente: http://php.net/manual/en/function. mcrypt-encrypt.php
Así que hay que reemplazar el código php y encontrar una solución sin mcrypt.
O, me acabo de enterar, puede utilizar TODAVÍA mcrypt en PHP 7.2.0, pero hay que instalarlo como una biblioteca de la comunidad PHP Extensión. ( https://pecl.php.net/ )
En las distribuciones Debian / Ubuntu Linux:
sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install php7.2-dev
sudo apt-get -y install libmcrypt-dev
a continuación:
sudo pecl install mcrypt-1.0.1
Fuente: https: // www .techrepublic.com / artículo / cómo-a-instalación-mcrypt-para-php-7-2 /
En Ubuntu que tenía el problema y lo resolvió con
$ sudo apt-get install php5-mcrypt
$ sudo service apache2 reload
En Ubuntu 14.10:
Instalar módulo mcrypt
sudo apt install php5-mcrypt
Habilitar mcrypt módulo en apache2
sudo a2enmod mcrypt
Reload módulo de configuración
sudo service apache2 restart
En Linux Mint 17,1 Rebecca - Llamado a la función no definida mcrypt_create_iv ...
Resuelto añadiendo la siguiente línea a la php.ini
extension=mcrypt.so
Después de que a
service apache2 restart
resuelto ...
Yo tenía el mismo problema para PHP 7 versión de falta mcrypt.
Esto funcionó para mí.
sudo apt-get update
sudo apt-get install mcrypt php7.0-mcrypt
sudo apt-get upgrade
sudo service apache2 restart (if needed)
Es mcrypt habilitado? Puede usar phpinfo()
para ver si lo es.
Una cosa más: si usted está sirviendo PHP a través de un servidor web como Apache, intente reiniciar el servidor web. Esto "reset" cualquier módulo de PHP que pueden estar presentes, la activación de la nueva configuración.
Si se asume que está usando Debian Linux (estoy usando Linux Mint 12, era un problema en el servidor de Ubuntu 12.04.1 LTS I ssh'ed a.)
Sugiero tomar consejos @dkamins y asegurarse de que haya mcrypt instalado y activo en su php5 instalar. Uso "sudo apt-get install php5-mcrypt" para instalar. Mis notas a continuación.
Al usar la versión PHP PHP Version 5.3.10-1ubuntu3.4
, si phpinfo abierta () según lo sugerido por @ John Conde, lo que lo hace mediante la creación de archivo de prueba en el servidor web (por ejemplo, crear página de estado testphp.php con sólo el contenido "" en cualquier lugar accesible en el servidor a través del navegador)
he encontrado ninguna presencia de estado activado o desactivado en la página de estado cuando se abre en el navegador. Cuando abrió el archivo php.ini, mencionada por @Anthony Forloney, pensando en ;extension=php_mcrypt.dll to extension=php_mcrypt.dll
uncomment
Me conmutado que un lado a otro y se reinicia Apache (Estoy corriendo Apache 2 y se puede reiniciar en mi configuración con sudo /etc/init.d/apache2 restart
o cuando se encuentre en ese directorio simplemente sudo restart
creo)
con el cambio y sin cambio pero todo sin ir. Seguí el consejo @dkamins y fui a instalar el paquete con "sudo apt-get install php5-mcrypt" y luego se reinicia Apache que el anterior. Luego se fue mi error y mi solicitud funcionaba bien.
Si está usando php5-FPM sí recuerdo que reiniciarlo, después de instalar mcrypt
php5-FPM servicio de reinicio
Si usando Ubuntu 14.04 aquí es la solución a este problema:
apt-get install php5-mcrypt
En primer lugar comprobar php5-mcryp ya está instalado
Si está instalado, basta con ejecutar este comando dos o instalar y ejecutar este comando dos
$ sudo php5enmod mcrypt
$ sudo service apache2 restart
espero que funcione.
para Linux basado (Fedora)
yum -y install php-mcrypt
Habilitar el módulo mediante la adición de: 'extension = mcrypt.so' a PHP.ini. (/Etc/php.ini)
systemctl restart httpd.service
Listo!
Para mí ayudó a mcrypt desinstalación con:
sudo apt-get purge php5-mcrypt
y simplemente volver a instalarlo:
sudo apt-get install php5-mcrypt
y no se olvide de reiniciar Apache como se describió anteriormente.
No saber por qué y cómo esto era diferente en mi caso (utilizando una máquina virtual con php55 aprovisionado), pero tal vez esto ayude a alguien más. También tuve este problema con algunos otros módulos como XCache ...
Comprobar e instalar php5-mcrypt:
sudo apt-get install php5-mcrypt