IonCube — это набор утилит для командной строки, которые позволяют производить кодирование, обфускацию и лицензирование исходного кода, написанного на языке php.
Термины:
Необходимое программное обеспечение:
Скачать 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 хранятся в следующих папках:
Теперь отредактируйте необходимые файлы конфигурации 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 завершена!