Ioncube - это php модуль, позволяющий работать с закодированными скриптами. Данные скрипты имеют закрытый код, как правило, это коммерческие системы или модули, являющимися платными. В данных скриптах как правило используется проверка валидности лицензии и чтобы данный код проверки никто не убрал, а сам исходный код не был использован в коммерческих целях другими - его кодируют. Данный php модуль выполняет декодирование, что делает такой тип скриптов рабочим.
Для каждой php версии необходимо установить свою версию модуля.
1. Скачаем последнюю версию Ioncube
x64
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
x32
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
2. Установка
2.1 Определим наличие php версий на сервере
ls /usr/bin/ | grep php
В нашем случае на сервере установлены 2 версии для которых мы настроим Ioncube.
2.2 Определим папку расположения php модулей для каждой версии
php 7.3
/usr/bin/php7.3 -i | grep extension_dir
php 8.1
/usr/bin/php8.1 -i | grep extension_dir
2.3 Скопируем модули из скачанного архива
tar -xvf ioncube_loaders_lin_x86-64.tar.gz -C /var/tmp/
cp /var/tmp/ioncube/ioncube_loader_lin_7.3.so /usr/lib/php/20180731
cp /var/tmp/ioncube/ioncube_loader_lin_7.3_ts.so /usr/lib/php/20180731
cp /var/tmp/ioncube/ioncube_loader_lin_8.1.so /usr/lib/php/20210902
cp /var/tmp/ioncube/ioncube_loader_lin_8.1_ts.so /usr/lib/php/20210902
2.4 Добавим модули в конфигурационный файл
2.4.1 Для запуска скриптов из консоли (для cron задач)
vim /etc/php/7.3/cli/php.ini
[Zend]
zend_extension=/usr/lib/php/20180731/ioncube_loader_lin_7.3.so
zend_extension_ts = /usr/lib/php/20180731/ioncube_loader_lin_7.3_ts.so
vim /etc/php/8.1/cli/php.ini
[Zend]
zend_extension=/usr/lib/php/20210902/ioncube_loader_lin_8.1.so
zend_extension_ts = /usr/lib/php/20210902/ioncube_loader_lin_8.1_ts.so
2.4.2 Для веб службы, в нашем примере мы используем fpm
vim /etc/php/7.3/fpm/php.ini
[Zend]
zend_extension=/usr/lib/php/20180731/ioncube_loader_lin_7.3.so
zend_extension_ts = /usr/lib/php/20180731/ioncube_loader_lin_7.3_ts.so
vim /etc/php/8.1/fpm/php.ini
[Zend]
zend_extension=/usr/lib/php/20210902/ioncube_loader_lin_8.1.so
zend_extension_ts = /usr/lib/php/20210902/ioncube_loader_lin_8.1_ts.so
Если Вы используете apache, добавьте строки по аналогии.
2.5 Сохраним и применим настройки
Для сохранения изменений в конфигурационных файлах используйте команду
:wq
Перезапустим веб службы
service php7.3-fpm restart
service php8.1-fpm restart
3. Проверка
php 7.3
/usr/bin/php7.3 -v
php 8.1
/usr/bin/php8.1 -v
Готово, теперь закодированные скрипты будут корректно работать на Вашем сервере.