Cómo instalar ionCube Loader en un servidor

En Tutoriales y Guías, Webmasters por

A veces nos encontramos con algún script en PHP protegido por ionCube y a menos que instalemos el respectivo módulo, nuestro servidor no soportará este tipo de archivos. En este pequeño tutorial aprenderemos a instalar ionCube Loader en un servidor Ubuntu, aunque es aplicable en la mayoría de distribuciones Linux (CentOS, Debian, etc).

Cómo instalar ionCube Loader en un servidor

Las aplicaciones escritas en PHP presentan el problema de que su código fuente es totalmente accesible a la hora de distribuirlas. Ante esta necesidad de proteger el código PHP, aparecieron en el mercado diferentes tecnologías, entre las que destacan ionCube y Zend Guard.

Hoy nos centraremos en ionCube, ya que existen en el mercado suficientes scripts comerciales escritos en PHP y que requieren la instalación de ionCube. Un ejemplo de script comercial muy conocido que requiere ionCube, es WHMCS (Web Hosting Automation Made Easy).

Cómo instalar ionCube Loader en un servidor con Ubuntu.

Pasos previos antes de instalar ionCube Loader.

Antes de instalar ionCube Loader necesitamos realizar unos pequeños pasos previos para conocer las características de nuestro servidor. Para esto vamos a necesitar acceso a través de SSH al servidor, por ejemplo usando PuTTY.

En primer lugar necesitaremos conocer el tipo de arquitectura de nuestra instalación de PHP, es decir, si es de 32-bit o 64-bit. Si nuestro servidor tiene instalado el sistema operativo en su versión de 64-bit, lo más seguro es que tengamos instalado el paquete PHP de 64-bit, pero vamos a asegurarnos.

Usamos el editor nano para crear un archivo en el directorio raíz de nuestro servidor web. En mi caso el directorio raíz del servidor es /var/www/html/, por lo que el comando a ejecutar sería:
sudo nano /var/www/html/info.php

Pego como contenidos del archivo:

<?php phpinfo(); ?>

Guardo los cambios con la combinación de teclas CTRL+O y cierro el editor con la combinación CTRL+X.

Ahora sólo tenemos que acceder al archivo info.php a través del navegador. En mi caso he empleado la IP del sevidor en la URL: http://ip_servidor/info.php

En la página de phpinfo que aparece en el navegador tenemos que prestar atención a la versión de PHP que tenemos instalada, que aparece arriba de todo en la cabecera (ver imagen). También tenemos que consultar la fila «System», ya que si termina con x86_64 nuestro paquete de PHP es de 64-bit y si termina con i686 es de 32-bit.

phpinfo datos del servidor

Además necesitaremos conocer la ruta de las extensiones PHP, que se identifica en la información de phpinfo por la fila de nombre «extension_dir».

phpinfo extension_dir

Conociendo esta información de nuestro servidor, ya podemos pasar a la siguiente fase, donde instalaremos la extensión de ionCube Loader para PHP.

Instalar ionCube Loader.

En primer lugar nos dirigimos a la página oficial de descargas de ionCube Loader y copiamos la URL del paquete tar.gz que se corresponde con la arquitectura de nuestro servidor. En nuestro caso, al ser de 64-bit descargamos el archivo en el servidor con el siguiente comando:
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

A continuación descomprimimos el paquete con el comando:
tar xvfz ioncube_loaders_lin_x86-64.tar.gz

Automáticamente se creará la carpeta ioncube que contiene varios archivos. En nuestro caso, la versión de PHP es la 7.0.15, por lo que usaremos el archivo ioncube_loader_lin_7.0.so. Copiamos este archivo a la carpeta de las extensiones PHP que obtuvimos en los pasos previos y para esto ejecutamos el comando:
sudo cp ioncube/ioncube_loader_lin_7.0.so /usr/lib/php/20151012/

Modificar la configuración de PHP para que cargue la extensión de ionCube Loader.

Llegado a este punto sólo nos queda modificar la configuración de PHP para que cargue la extensión de ionCube Loader. Esto podemos hacerlo de dos formas:

  • Modificando el archivo php.ini directamente.
  • Crear un archivo de configuración adicional para cargar la extensión.

De estos dos métodos, el primero es tan sencillo como localizar el archivo de configuración php.ini y añadir la línea:
zend_extension = "/usr/lib/php/20151012/ioncube_loader_lin_7.0.so"

Reiniciamos el servidor y ya estaría la instalación completa.

La segunda opción es un poco más compleja, pero puede evitarnos conflictos con otras extensiones. Para crear el archivo de configuración adicional, emplearemos nano y la ruta será la correspondiente a la fila «Scan this dir for additional .ini files» de phpinfo, que en nuestro caso es /etc/php/7.0/apache2/conf.d.

El nombre del archivo de configuración llevará el prefijo 00, esto nos garantiza que se cargará en primer lugar, antes que el resto de archivos de configuración. Ejecutamos el comando:
sudo nano /etc/php/7.0/apache2/conf.d/00-ioncube.ini

Pego como contenido del archivo la línea:
zend_extension = "/usr/lib/php/20151012/ioncube_loader_lin_7.0.so"

Tan sólo nos queda reiniciar el servidor y estará la instalación de ionCube Loader completada. Para reiniciar en Ubuntu 16.04 ejecutamos el comando:

  • Si usamos Apache: sudo systemctl restart apache2.service
  • Si usamos Nginx: sudo systemctl restart nginx
  • Si usamos php-fpm: sudo systemctl restart php7.0-fpm.service

Tras reiniciar, podemos verificar que la extensión de ionCube está instalada accediendo a la URL http://ip_servidor/info.php y vemos que el texto pone «ionCube PHP Loader (enabled)» tal y como vemos en la siguiente imagen:

ioncube loader phpinfo

El último paso sería eliminar el archivo info.php, porque no nos hace falta y puede suponer un peligro para la seguridad si es accesible públicamente.