Skip to content

IonCube Loader

Общее описание

IonCube Loader — это расширение PHP, необходимое для выполнения PHP-скриптов, защищённых с помощью IonCube Encoder. Он работает как модуль, который загружается в PHP и дешифрует защищённые файлы перед их исполнением. IonCube Loader широко используется разработчиками, которые хотят защитить свой исходный код от несанкционированного просмотра или изменения, особенно при распространении коммерческих PHP-продуктов (например, плагинов, тем, CMS).

Основные особенности:

  • Поддержка шифрования PHP-кода
  • Совместимость с современными версиями PHP
  • Возможность ограничения использования кода по домену или времени
  • Интеграция с хостинг-панелями
  • Простота установки и настройки

Версии IonCube Loader и совместимость

IonCube Loader Версии PHP Архитектура
10.x PHP 5.3–5.6 x86 / x86_64
11.x PHP 7.0–7.4 x86 / x86_64
12.x PHP 8.0–8.3 x86 / x86_64 / ARM64

Рекомендуется использовать последнюю версию IonCube Loader, соответствующую вашей версии PHP и архитектуре сервера.


Установка IonCube Loader

Шаги установки:

1. Определите версию PHP:

php -v

2. Скачайте IonCube Loader:

Перейдите на официальный сайт:
https://www.ioncube.com/loaders.php
Выберите версию под вашу ОС и PHP.

3. Распакуйте архив:

tar xzf ioncube_loaders_linux_x86-64.tar.gz

4. Скопируйте ioncube_loader_lin_X.Y.so в папку расширений PHP:

sudo cp ioncube/ioncube_loader_lin_8.1.so /usr/lib/php/20210902/

Путь может отличаться в зависимости от системы. Чтобы узнать точный путь к модулям:

php -i | grep extension_dir

5. Включите IonCube Loader в конфигурации PHP:

Откройте php.ini или создайте отдельный файл, например /etc/php/mods-available/ioncube.ini, и добавьте:

zend_extension = /путь/к/ioncube_loader_lin_8.1.so

Пример:

zend_extension = /usr/lib/php/20210902/ioncube_loader_lin_8.1.so

6. Перезапустите веб-сервер:

sudo systemctl restart apache2
# или
sudo systemctl restart php-fpm

Проверка установки

Создайте файл info.php:

<?php phpinfo(); ?>

Откройте его в браузере:
http://ваш_домен/info.php

Найдите раздел ionCube PHP Loader. Если он отображается, значит, IonCube Loader установлен корректно.


Конфигурационные параметры

Параметр Описание
zend_extension Путь к .so файлу IonCube Loader
ioncube.log_file Путь к лог-файлу (опционально)
ioncube.encoder_version Показывает версию IonCube Encoder, использованную для шифрования файлов
ioncube.file_protection Тип защиты файла (если используется лицензирование)

Как работает IonCube Loader?

IonCube Loader — это Zend-расширение, которое: 1. Загружается при старте PHP 2. Проверяет, является ли текущий PHP-файл защищённым (зашифрованным) 3. Дешифрует файл (если есть подходящая лицензия или ключ) 4. Передаёт дешифрованный код в PHP-интерпретатор

Защищённые файлы начинаются с заголовка:

<?php
// Encoded by ionCube PHP Encoder

Использование с IonCube Encoder

IonCube Encoder — это программное обеспечение, позволяющее шифровать и защищать PHP-код. После шифрования файлы можно запускать только на серверах, где установлен соответствующий IonCube Loader.

Возможности IonCube Encoder:

  • Шифрование и обфускация PHP-кода
  • Лицензирование по домену, IP, дате истечения
  • Генерация автономных PHAR-файлов
  • Защита от декомпиляции и анализа
  • Поддержка CLI и веб-окружения

Установка IonCube Loader через панель управления

cPanel / WHM:

  1. Перейдите в WHM → EasyApache 4
  2. Выберите нужный PHP-пакет
  3. Нажмите «Customize» → выберите ioncube-loader

Plesk:

  1. Откройте Tools & Settings → PHP Settings
  2. Найдите нужную версию PHP и активируйте расширение ioncube

DirectAdmin:

  1. Перейдите в CustomBuild:
cd /usr/local/directadmin/custombuild
./build set ioncube yes
./build ioncube

ISPmanager:

  1. Перейдите в "PHP settings"
  2. Активируйте IonCube Loader для нужной версии PHP

Совместимость с OPcache

IonCube Loader совместим с OPcache начиная с версии 10.1+.

Если вы хотите использовать OPcache вместе с IonCube, убедитесь, что: - IonCube Loader загружается до OPcache в php.ini

zend_extension=/usr/lib/php/20210902/ioncube_loader_lin_8.1.so
opcache.enable=1
opcache.memory_consumption=128

Диагностика и проверка

Создайте loader-wizard.php:

<?php
echo '<pre>';
passthru('php -m');
echo '</pre>';
?>

Этот скрипт покажет, загружен ли IonCube Loader.

Также можно использовать:

<?php
if (extension_loaded('ioncube_loader')) {
    echo 'IonCube Loader установлен.';
} else {
    echo 'IonCube Loader НЕ установлен.';
}
?>

Работа с защищёнными файлами

После установки IonCube Loader вы можете запускать защищённые файлы так же, как обычные PHP-скрипты. Однако, если файл имеет ограничения по домену или дате, IonCube будет проверять эти условия при каждом запуске.

Пример ошибки:

The file 'index.php' is encoded with the ionCube PHP Encoder for PHP 8.1 and cannot be loaded on this host.

Это означает, что: - Версия PHP не совпадает с той, для которой был закодирован файл - Файл ограничен определённым доменом или сроком действия - IonCube Loader не установлен или несовместим


Безопасность

Рекомендации:

  • Не храните оригинальные исходники на сервере
  • Используйте ограничения по домену и дате
  • Регулярно обновляйте IonCube Loader
  • Ограничьте доступ к защищённым файлам через .htaccess или Nginx
  • Используйте HTTPS

Пример блокировки прямого доступа к .php:

<FilesMatch "\.php$">
    Order Deny,Allow
    Deny from all
</FilesMatch>

Производительность

IonCube Loader оказывает минимальное влияние на производительность: - Первый запуск может быть медленнее из-за дешифрования - Последующие вызовы используют кэш - Совместимость с OPcache позволяет ускорить работу

Для повышения производительности рекомендуется: - Включить OPcache - Использовать SSD - Использовать PHP 8.1+ - Настроить кэширование


Логирование и диагностика

Вы можете включить логирование IonCube Loader в php.ini:

ioncube.log_file="/var/log/ioncube.log"

Убедитесь, что пользователь, под которым работает PHP, имеет права на запись в этот файл.

В логе будут отражены: - Попытки загрузки защищённых файлов - Ошибки совместимости - Лицензионные ошибки


Обновление IonCube Loader

Через веб-интерфейс:

Некоторые хостеры предоставляют автоматическое обновление IonCube Loader через панель управления.

Вручную:

  1. Скачайте новую версию с https://www.ioncube.com/loaders.php
  2. Замените старый файл ioncube_loader_lin_X.Y.so на новый
  3. Перезапустите веб-сервер

Сообщество и поддержка

Официальные источники:


Альтернативы IonCube Loader

Инструмент Описание
Zend Guard Loader Аналог IonCube, но устарел на новых версиях PHP
SourceGuardian Коммерческая система шифрования PHP-кода
PHC Compiler Бесплатный компилятор PHP в C
Swoole Compiler Компиляция PHP-кода в бинарный формат
OPcache + Phar Без шифрования, но с упаковкой и оптимизацией
PHP Bcompiler Бесплатный, но устаревший проект

Примеры использования

1. Защита коммерческой CMS:

Разработчик использует IonCube Encoder для шифрования ядра системы, чтобы предотвратить взлом и нелегальное использование. Клиент получает защищённые файлы и должен установить IonCube Loader.

2. Защита плагинов WordPress:

Автор плагина шифрует часть кода с помощью IonCube Encoder. Плагин требует установленного IonCube Loader на сервере.

3. Лицензирование:

IonCube позволяет задавать: - Домен, на котором разрешено выполнение - Дату окончания лицензии - IP-адрес сервера