¿En qué podemos ayudarte?
MCrypt es una de las herramienta más usadas para cifrar archivos en PHP. Sin embargo, las versiones actuales ya no la incorporan. Se recomienda utilizar OpenSSL en su lugar. Si necesitamos esta librería tendremos que instalarla nosotros mismos o solicitarlo a nuestro proveedor de alojamiento.
¿Por qué podemos necesitar MCrypt en PHP?
Básicamente, hay dos razones que nos pueden obligar a implementar esta librería de cifrado si usamos PHP 7.2.x o superior
Usamos una aplicación que la requiere. Un ejemplo es Prestashop 1.6x. Migrar a la versión 1.7, es un proceso que puede ser complicado. Tendremos que comprobar la compatibilidad de los complementos instalados y las personalizaciones que hayamos realizado.
El otro motivo es por requerimiento de un servicio externo, con un algoritmo de cifrado no compatible con OpenSSL.
Si nos vemos en cualquiera de estas situaciones, tendremos que compilar, instalar y cargar la librería. Parece una tarea compleja pero no es así, como veremos a con
En una VPS con Ubuntu, será suficiente con 7 comandos en el terminal. Debemos sustituir la X por la versión de PHP instaladas (es decir. 7.2, 7.3, etc)
Primero instalamos los paquetes de desarrollo para PHP
sudo apt-get -y install php7.x-dev
A continuación las herramientas de compilación para PHP
sudo apt-get -y install gcc make autoconf libc-dev pkg-config
Llega el turno de los paquetes de desarrollo para MCrypt
sudo apt-get -y install libmcrypt-dev
Finalmente, procedemos a la compilación, instalación de configuración de la librería
sudo pecl install mcrypt-1.0.1
Aceptamos la configuración automática y pasados unos segundos el proceso finalizará. Si no hay errores se nos informará de la ubicación de la extensión.
Haremos caso a la recomendación y configuraremos PHP para que haga uso de la nueva extensión. La vía más rápida es crear desde la consola loas archivos de configuración necesarios.
sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.x/cli/conf.d/mcrypt.ini"
sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.x/apache2/conf.d/mcrypt.ini"
Si nuestra web implementa HTTP2 necesitaremos crear un tercer archivo.
sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.x/fpm/conf.d/mcrypt.ini"
Solo nos queda reiniciar Apache y si procede PHP-FPM. Para comprobar que la extensión funciona correctamente nos ayudaremos de nuestro viejo conocido phpinfo().
Como hemos visto el proceso no es excesivamente complicado y nos llevará apenas unos minutos tener la nueva extensión disponible en nuestro servidor. Esto nos dará el tiempo necesario para actualizar y migrar el software sin presiones.