Установка и включение IonCube в PHP на хостинг

IonCube — это набор утилит для командной строки, которые позволяют производить кодирование, обфускацию и лицензирование исходного кода, написанного на языке php.

Термины:

  1. Кодирование исходного кода — процесс при котором исходный код, написанный на языке php, превращается в набор машинных команд, чтение и декодирование которых максимально затруднено.
  2. Обфускация — приведение исходного кода программы к виду, сохраняющему ее функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию.
  3. Лицензия — это специальный, закодированный приватным ключом файл, который необходим для запуска закодированного исходного кода.

Необходимое программное обеспечение:

  • IonCube Encoder (платная программа) — набор бинарных файлов для разных операционных систем, при помощи которых можно кодировать исходный код, производить его обфускацию и генерировать лицензии.
  • IonCube Loader (IonCube Загрузчик) (бесплатное ПО) — поставляется в виде .so или .dll библиотеки, необходим для декодирования исходного кода закодированного при помощи IonCube Encoder.

Скачать IonCube Loader (IonCube Загрузчик) и прочитать англоязычную документацию можно на официальном сайте по ссылке https://www.ioncube.com/loaders.php.

Перед установкой IonCube PHP Loader необходимо собрать информацию о программном обеспечивании в котором планируется его запуск. Выясним разрядность операционной системы, где х86_64 - значит 64-х битная ОС, i386 - 32-х битная ОС.

uname -a
Linux dieg.info 5.13.0-40-generic 45-Ubuntu SMP Tue Mar 29 14:48:14 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Исходя из полученных результатов - определяем разрядность системы. В показанном примере система является 64-разрядной. Основываясь на этой информации, качаем установочный архив IonCube Loader с официального сайта. Для этого подключитесь к VPS по SSH с правами суперпользователя (root) и воспользуйтесь командой wget:

Для 32-разрядных систем:

wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz

Для 64-разрядных систем:

wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Распакуем скаченный файл в директорию /usr/local

tar xzf ioncube_loaders_lin_x86-64.tar.gz -C /usr/local

В дальнейшем, из созданной директории /usr/local/ioncube, нас будут интересовать 2 файла ioncube_loader_lin_[номер версии].so и ioncube_loader_lin_[номер версии]_ts.so.

Сейчас на серверах одновременно установлены несколько версий PHP. Вы должны определиться в какую версию PHP вы будите устанавливать IonCube Loader.

Важно найти правильный файл конфигурации php (php.ini), поскольку у Вас в системе может быть несколько таких файлов. Нам нужно включить ionCube только в действующем (активном) файле. Команда php -i предоставляет подробную информацию об активной версии php в интерфейсе командной строки:

$ php -i | grep php.ini
 
Configuration File (php.ini) Path => /etc/php/7.4/cli
Loaded Configuration File => /etc/php/7.4/cli/php.ini

Строки, что мы видим Выше говорят нам о том, что искомый файл находится по пути /etc/php/7.4/cli/php.ini.

По умолчанию PHP хранит файлы конфигурации в следующем месте. Например, файлы конфигурации для PHP 7.4 хранятся в следующих папках:

  • /etc/php/7.4/cli/php.ini # для PHP CLI
  • /etc/php/7.4/fpm/php.ini # для PHP FPM
  • /etc/php/7.4/apache/php.ini # для PHP с Apache

Теперь отредактируйте необходимые файлы конфигурации PHP или вы можете обновить все файлы конфигурации, найденные выше. Добавьте приведенный ниже код в начало файла php.ini в зависимости от вашей версии PHP:

zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.4.so
#zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.4_ts.so

Число в имени файла соответствует версии PHP, для которой он собран, а _ts это Thread Safe версии. Зачастую используют обычную версию 7.4.so (не Thread Safe).

После внесения указанных строк необходимо сохранить их в файле и выйти из редактора.

После сохранения изменений в конфигурационном файле, потребуется перезапуск веб-сервера (Apache, PHP-FPM) для того, чтобы внесенные изменения вступили в силу. Для этого введите следующие команды:

systemctl  restart apache2
systemctl  restart php7.4-fpm.service

Вы добавили настройки ionCube в свою конфигурацию php. Чтобы проверить конфигурацию, введите команду:

$ php -v

PHP 7.4.8 (cli) (built: Jul 13 2020 16:46:22) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with the ionCube PHP Loader + ionCube24 v10.4.1, Copyright (c) 2002-2020, by ionCube Ltd.
    with Zend OPcache v7.4.8, Copyright (c), by Zend Technologies

Видим, что загрузчик PHP ionCube настроен для вашей версии PHP. Точно так же для просмотра конфигурации Apache используйте файл с командой phpinfo().

Еще одна проверка, при помощи команды:

php –m
 
[PHP Modules]
...
iconv
ionCube Loader
json
libxml
mbstring
... 

можно получить список подключенных модулей PHP, среди которых должен быть и IonCube.

Установка IonCube Loader завершена!

Хостинг IonCube Loader

На виртуальных хостинг зачастую возникают проблемы с установкой IonCube, вам нужен хостинг VPS. Рекомендую VPS от Zomro и Hostens c поддержкой IPv6.

PQ VPS сервера в 28+ странах.