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)));
¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top