Gestionar ionCube Loader en Core-Admin con Webhosting Management


#1

1. Introducción

ionCube Loader es una extensión PHP que permite ejecutar ficheros PHP codificados (encoded) con ionCube Encoder. Muchas aplicaciones comerciales PHP distribuyen su código protegido con ionCube, por lo que es necesario tener el loader instalado en el motor PHP del servidor para poder ejecutarlas.

Core-Admin incluye soporte integrado para gestionar ionCube Loader a través del módulo Webhosting Management, permitiendo activar, desactivar y actualizar los loaders de forma sencilla, tanto desde la interfaz web como desde la línea de comandos.

2. Requisitos previos

  • Core-Admin instalado con el módulo Webhosting Management activo
  • Acceso de administrador al panel de Core-Admin
  • Arquitectura del servidor: x86-64 o aarch64 (ARM 64 bits)
  • Conexión a internet en el servidor (para descargar los loaders desde ioncube.com)

3. Motores PHP soportados

La herramienta detecta automáticamente todos los motores PHP disponibles en el servidor:

  • Motores Core-Admin: instalados en /usr/core-admin/php/*/bin/php (por ejemplo PHP 7.4, 8.1, 8.2, 8.3…)
  • Motor PHP del sistema: el PHP instalado por el sistema operativo en /usr/bin/php

Cada motor se gestiona de forma independiente, pudiendo tener ionCube activado en unos motores y desactivado en otros según las necesidades.

4. Gestión desde la interfaz web

Acceder al panel de ionCube Loader

  1. Inicia sesión en el panel web de Core-Admin
  2. Navega hasta el módulo Webhosting Management
  3. En el árbol lateral, dentro de la sección de administración, busca el nodo ionCube Loader

Nota: Esta opción solo es visible para usuarios con permisos de administrador.

Listado de motores PHP

Al acceder a la sección ionCube Loader, se muestra un listado con todos los motores PHP detectados en el servidor. Para cada motor se indica:

Columna Descripción
Version Identificador del motor (por ejemplo 7.4, 8.2, default)
Full version Versión completa de PHP (por ejemplo 7.4.33, 8.2.15)
ionCube active Indicador on/off que muestra si ionCube está activado
ionCube version Versión del loader ionCube instalado (por ejemplo v13.0.4)
Type Tipo de motor: core-admin o system

Puedes usar el botón Refresh de la barra de herramientas para actualizar el listado, y la caja de búsqueda para filtrar por versión.

Activar ionCube Loader en un motor PHP

  1. En el listado de motores, haz clic sobre el motor PHP donde deseas activar ionCube
  2. Se abrirá la vista de detalle del motor con dos secciones: Engine details e ionCube status
  3. Pulsa el botón Enable ionCube
  4. Aparecerá un diálogo de confirmación indicando que se activará la extensión ionCube Loader y que el servicio PHP-FPM será reiniciado
  5. Confirma la operación

[PANTALLAZO: vista de detalle de un motor PHP con el botón “Enable ionCube” visible y el diálogo de confirmación]

La operación realiza automáticamente los siguientes pasos:

  1. Descarga los loaders de ionCube desde downloads.ioncube.com (si no están ya en caché)
  2. Copia el fichero .so correspondiente a la versión de PHP en el directorio de extensiones
  3. Crea el fichero de configuración 00-ioncube.ini (el prefijo 00- garantiza que se carga antes que otras extensiones)
  4. Verifica que ionCube se ha activado correctamente
  5. Reinicia el servicio PHP-FPM asociado al motor

Desactivar ionCube Loader

  1. Selecciona el motor PHP donde deseas desactivar ionCube
  2. Pulsa el botón Disable ionCube
  3. Confirma la operación en el diálogo de confirmación

La operación elimina el fichero de configuración 00-ioncube.ini, elimina el fichero .so del directorio de extensiones, y reinicia el servicio PHP-FPM.

5. Gestión desde la línea de comandos

Para escenarios de automatización o cuando se prefiere trabajar desde terminal, Core-Admin proporciona la herramienta crad-ioncube-loader que se ejecuta con privilegios de root.

Listar motores PHP y estado de ionCube

crad-ioncube-loader --list

Ejemplo de salida:

PHP Engine   Version   ionCube   ionCube Version   Type
7.4          7.4.33    [X]       v13.0.4           core-admin
8.1          8.1.27    [ ]       -                 core-admin
8.2          8.2.15    [X]       v13.0.4           core-admin
default      8.2.22    [ ]       -                 system

Para obtener la salida en formato JSON (útil para scripting):

crad-ioncube-loader --list --json

Activar ionCube para un motor PHP

crad-ioncube-loader --enable='8.2'

Salida esperada:

INFO: downloading ionCube loaders from https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
INFO: copying ioncube_loader_lin_8.2.so to /usr/core-admin/php/8.2/lib/php/extensions/...
INFO: creating /etc/core-admin/php/8.2/conf.d/00-ioncube.ini
OK: ionCube loader activated for PHP 8.2
INFO: restarting core-admin-php-fpm-8.2

Para el PHP del sistema, usar default como versión:

crad-ioncube-loader --enable='default'

Desactivar ionCube para un motor PHP

crad-ioncube-loader --disable='8.2'

Actualizar los loaders de ionCube

Cuando se publica una nueva versión de ionCube Loader, puedes forzar la re-descarga de los ficheros .so con:

crad-ioncube-loader --update-loaders

Salida esperada:

INFO: downloading ionCube loaders from https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
OK: ionCube loaders updated at /usr/src/core-admin/ioncube/ioncube

Este comando elimina la caché local y descarga la última versión disponible desde ioncube.com. Es posible combinarlo con --enable para actualizar y activar en un solo paso:

crad-ioncube-loader --update-loaders --enable='8.2'

Resumen de opciones

Opción Descripción
--list Listar motores PHP y estado de ionCube
--list --json Listado en formato JSON
--enable=VERSION Activar ionCube para el motor PHP indicado
--disable=VERSION Desactivar ionCube para el motor PHP indicado
--update-loaders Forzar re-descarga de los loaders ionCube

Detalles técnicos

Dónde se almacenan los ficheros

Elemento Ruta
Caché de loaders descargados /usr/src/core-admin/ioncube/ioncube/
Fichero .so del loader (core-admin) <extension_dir>/ioncube_loader_lin_<major>.<minor>.so
Configuración INI (core-admin) /etc/core-admin/php/<version>/conf.d/00-ioncube.ini
Configuración INI (sistema, CLI) /etc/php/<version>/cli/conf.d/00-ioncube.ini
Configuración INI (sistema, FPM) /etc/php/<version>/fpm/conf.d/00-ioncube.ini

Contenido del fichero 00-ioncube.ini

El fichero de configuración contiene una única directiva:

zend_extension = /ruta/al/directorio/extensiones/ioncube_loader_lin_8.2.so

El prefijo 00- en el nombre del fichero es importante: garantiza que ionCube Loader se cargue antes que cualquier otra extensión PHP, lo cual es un requisito de ionCube.

Servicio PHP-FPM

Tras activar o desactivar ionCube, la herramienta reinicia automáticamente el servicio PHP-FPM asociado al motor para que los cambios surtan efecto de inmediato:

  • Motores Core-Admin: servicio core-admin-php-fpm-<version> (por ejemplo core-admin-php-fpm-8.2)
  • Motor del sistema: el servicio varía según la distribución (por ejemplo php8.2-fpm en Debian Bookworm, php8.3-fpm en Ubuntu Noble)

Arquitecturas soportadas

La herramienta detecta automáticamente la arquitectura del servidor y descarga el paquete correspondiente:

  • x86-64: ioncube_loaders_lin_x86-64.tar.gz
  • aarch64 (ARM 64): ioncube_loaders_lin_aarch64.tar.gz

6. Verificación manual

Si deseas verificar manualmente que ionCube está correctamente activado en un motor PHP, puedes ejecutar:

# Para un motor core-admin (ejemplo PHP 8.2)
/usr/core-admin/php/8.2/bin/php -v

# Para el PHP del sistema
php -v

Si ionCube está activo, la salida incluirá una línea similar a:

PHP 8.2.15 (cli) (built: ...)
    with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v13.0.4
    ...

7. Preguntas frecuentes

P: ¿Necesito reiniciar algo manualmente tras activar ionCube?
No. La herramienta reinicia automáticamente el servicio PHP-FPM del motor seleccionado. Los sitios web que usen ese motor PHP comenzarán a soportar ficheros ionCube de forma inmediata.

P: ¿Puedo tener ionCube activado en unos motores PHP y desactivado en otros?
Sí. Cada motor PHP se gestiona de forma independiente. Puedes activar ionCube únicamente en los motores que lo necesiten.

P: ¿Cómo actualizo ionCube Loader cuando sale una nueva versión?
Usa el comando crad-ioncube-loader --update-loaders para descargar la última versión. Después, vuelve a activar ionCube en los motores deseados con --enable para que utilicen la nueva versión del loader. También es posible combinar ambas opciones: crad-ioncube-loader --update-loaders --enable='8.2'.

P: ¿Qué ocurre si mi arquitectura no está soportada?
La herramienta soporta las arquitecturas x86-64 y aarch64 (ARM 64 bits). Si el servidor utiliza otra arquitectura, se mostrará un error indicando que no está soportada.

P: ¿Dónde se descargan los loaders?
Los ficheros se descargan desde downloads.ioncube.com y se almacenan en caché en /usr/src/core-admin/ioncube/. Mientras la caché exista, no se re-descargan en sucesivas activaciones, lo que hace el proceso más rápido.