Ioncube es un módulo PHP que le permite trabajar con scripts codificados. Estos scripts son de código cerrado y, por regla general, son sistemas o módulos comerciales de pago. En estos scripts, por regla general, se utiliza una verificación de validez de la licencia y, para que nadie elimine este código de verificación y que otros no utilicen el código fuente con fines comerciales, se codifica. Este módulo PHP realiza la decodificación, lo que hace que este tipo de script funcione.
Para cada versión de PHP necesitas instalar su propia versión del módulo.
1. Descarga la última versión de Ioncube
x64
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
x32
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
2. Instalación
2.1 Determinar la presencia de versiones de php en el servidor
ls /usr/bin/ | grep php
En nuestro caso, existen 2 versiones instaladas en el servidor para el cual configuraremos Ioncube.
2.2 Definir la carpeta donde se ubican los módulos php para cada versión
php 7.3
/usr/bin/php7.3 -i | grep extension_dir
php 8.1
/usr/bin/php8.1 -i | grep extension_dir
2.3 Copiar módulos del archivo descargado
tar -xvf ioncube_loaders_lin_x86-64.tar.gz -C /var/tmp/
cp /var/tmp/ioncube/ioncube_loader_lin_7.3.so /usr/lib/php/20180731
cp /var/tmp/ioncube/ioncube_loader_lin_7.3_ts.so /usr/lib/php/20180731
cp /var/tmp/ioncube/ioncube_loader_lin_8.1.so /usr/lib/php/20210902
cp /var/tmp/ioncube/ioncube_loader_lin_8.1_ts.so /usr/lib/php/20210902
2.4 Agregar módulos al archivo de configuración
2.4.1 Para ejecutar scripts desde la consola (para tareas cron)
vim /etc/php/7.3/cli/php.ini
[Zend]
zend_extension=/usr/lib/php/20180731/ioncube_loader_lin_7.3.so
zend_extension_ts = /usr/lib/php/20180731/ioncube_loader_lin_7.3_ts.so
vim /etc/php/8.1/cli/php.ini
[Zend]
zend_extension=/usr/lib/php/20210902/ioncube_loader_lin_8.1.so
zend_extension_ts = /usr/lib/php/20210902/ioncube_loader_lin_8.1_ts.so
2.4.2 Para el servicio web, en nuestro ejemplo usamos fpm
vim /etc/php/7.3/fpm/php.ini
[Zend]
zend_extension=/usr/lib/php/20180731/ioncube_loader_lin_7.3.so
zend_extension_ts = /usr/lib/php/20180731/ioncube_loader_lin_7.3_ts.so
vim /etc/php/8.1/fpm/php.ini
[Zend]
zend_extension=/usr/lib/php/20210902/ioncube_loader_lin_8.1.so
zend_extension_ts = /usr/lib/php/20210902/ioncube_loader_lin_8.1_ts.so
Si estás usando Apache, agrega las mismas líneas.
2.5 Guardar y aplicar la configuración
Para guardar cambios en los archivos de configuración, use el comando
:wq
Reiniciemos los servicios web.
service php7.3-fpm restart
service php8.1-fpm restart
3. Verificar
php 7.3
/usr/bin/php7.3 -v
php 8.1
/usr/bin/php8.1 -v
Listo, ahora los scripts codificados funcionarán correctamente en su servidor.