6.8 Установка IonCube Loader на сервер

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

На нашем shared-хостинге, поддержка IonCube и его версия зависит от выбранной для пользователя версии PHP. Это актуально для любой линейки тарифных планов хостинга, а также для виртуальных/выделенных серверов с установленной панелью ISPManager4.

Внимание: если на Вашем сервере установлена панель ISPManager4 – у Вас уже установлен IonCube для всех поддерживаемых версий. Выполнять эту инструкцию ни в коем случае не стоит, так как это может привести к полной неработоспособности сервера. В случае возникновения потребности обновить версию IonCube – обратитесь в Службу поддержки.

Предварительные требования к установке IonCube

Если у Вас сервер без какой-либо панели управления, Вы можете столкнуться с необходимостью ручной установки IonCube.

Процесс установки может отличаться в зависимости от Вашей ОС. Вне зависимости от ОС, первым шагом всегда является подключение по SSH и получения root доступа.

Для установки IonCube требуется машина с активным и работающим вебсервером, Apache или Nginx, а также установленная версия PHP из списка поддерживаемых IonCubeLoader.

Внимание: IonCube Loader имеет определенную особенность – он зачастую не поддерживает “нулевые” версии PHP, например PHP 8.0. При этом, версии PHP 8.1 или PHP 8.2 им поддерживаются.

Пошаговая установка IonCube

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

1. Подключитесь к серверу по SSH.

2. Проверьте архитектуру текущего сервера:

  1. uname -m
Вывод
x86_64

Как видим из x86_64, наш текущий сервер работает на 64-битной архитектуре. Значения вида i686 указывали бы на обратное – 32-х битную архитектуру.

3. Далее, переходим директорию tmp и загружаем необходимый архив:

  • Для 64-битных систем:
  1. cd /tmp
  2. wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
  • Для 32-битных систем:
  1. cd /tmp
  2. wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz

4. После загрузки архива необходимо его разархивировать:

Так как в примере у нас используется 64-х битная архитектура, мы загрузили и распаковываем именно такой архив.

  1. tar -zxvf ioncube_loaders_lin_x86-64.tar.gz

.5. Переходим в директорию ioncube и просматриваем список файлов.

  1. cd ioncube/
  2. ls -l
Вывод
total 39260 -rw-rw-r-- 1 507 507 472192 Sep 9 2023 ioncube_loader_lin_4.1.so -rw-rw-r-- 1 507 507 471968 Sep 9 2023 ioncube_loader_lin_4.2.so -rw-rw-r-- 1 507 507 472768 Sep 9 2023 ioncube_loader_lin_4.3.so -rw-rw-r-- 1 507 507 490752 Sep 9 2023 ioncube_loader_lin_4.3_ts.so -rw-rw-r-- 1 507 507 475840 Sep 9 2023 ioncube_loader_lin_4.4.so -rw-rw-r-- 1 507 507 494880 Sep 9 2023 ioncube_loader_lin_4.4_ts.so -rw-rw-r-- 1 507 507 483360 Sep 9 2023 ioncube_loader_lin_5.0.so -rw-rw-r-- 1 507 507 497632 Sep 9 2023 ioncube_loader_lin_5.0_ts.so -rw-rw-r-- 1 507 507 1116768 Sep 9 2023 ioncube_loader_lin_5.1.so -rw-rw-r-- 1 507 507 1155744 Sep 9 2023 ioncube_loader_lin_5.1_ts.so -rw-rw-r-- 1 507 507 1139936 Sep 9 2023 ioncube_loader_lin_5.2.so -rw-rw-r-- 1 507 507 1176704 Sep 9 2023 ioncube_loader_lin_5.2_ts.so -rw-rw-r-- 1 507 507 1222328 Sep 9 2023 ioncube_loader_lin_5.3.so -rw-rw-r-- 1 507 507 1275512 Sep 9 2023 ioncube_loader_lin_5.3_ts.so -rw-rw-r-- 1 507 507 1512960 Sep 9 2023 ioncube_loader_lin_5.4.so -rw-rw-r-- 1 507 507 1599584 Sep 9 2023 ioncube_loader_lin_5.4_ts.so -rw-rw-r-- 1 507 507 1520056 Sep 9 2023 ioncube_loader_lin_5.5.so -rw-rw-r-- 1 507 507 1602040 Sep 9 2023 ioncube_loader_lin_5.5_ts.so -rw-rw-r-- 1 507 507 1485192 Sep 9 2023 ioncube_loader_lin_5.6.so -rw-rw-r-- 1 507 507 1549640 Sep 9 2023 ioncube_loader_lin_5.6_ts.so -rw-rw-r-- 1 507 507 1254608 Sep 9 2023 ioncube_loader_lin_7.0.so -rw-rw-r-- 1 507 507 1316080 Sep 9 2023 ioncube_loader_lin_7.0_ts.so -rw-rw-r-- 1 507 507 1355080 Sep 9 2023 ioncube_loader_lin_7.1.so -rw-rw-r-- 1 507 507 1438760 Sep 9 2023 ioncube_loader_lin_7.1_ts.so -rw-rw-r-- 1 507 507 1407568 Sep 9 2023 ioncube_loader_lin_7.2.so -rw-rw-r-- 1 507 507 1489008 Sep 9 2023 ioncube_loader_lin_7.2_ts.so -rw-rw-r-- 1 507 507 1316800 Sep 9 2023 ioncube_loader_lin_7.3.so -rw-rw-r-- 1 507 507 1386880 Sep 9 2023 ioncube_loader_lin_7.3_ts.so -rw-rw-r-- 1 507 507 1363392 Sep 9 2023 ioncube_loader_lin_7.4.so -rw-rw-r-- 1 507 507 1430848 Sep 9 2023 ioncube_loader_lin_7.4_ts.so -rw-rw-r-- 1 507 507 1401736 Sep 9 2023 ioncube_loader_lin_8.1.so -rw-rw-r-- 1 507 507 1506216 Sep 9 2023 ioncube_loader_lin_8.1_ts.so -rw-rw-r-- 1 507 507 1439016 Sep 9 2023 ioncube_loader_lin_8.2.so -rw-rw-r-- 1 507 507 1546568 Sep 9 2023 ioncube_loader_lin_8.2_ts.so -rw-r--r-- 1 507 507 10768 Aug 5 2022 LICENSE.txt -rw-r--r-- 1 507 507 181104 Aug 15 2022 loader-wizard.php -rw-r--r-- 1 507 507 4070 Sep 9 2023 README.txt -rw-r--r-- 1 507 507 39548 Sep 9 2023 USER-GUIDE.pdf -rw-r--r-- 1 507 507 11269 Sep 9 2023 USER-GUIDE.txt

Как видим, в архиве присутствовало множество различный версий модуля для разных версий PHP. Необходимо узнать, какой из этих файлов нужен нам для дальнейшей установки.

6. Просматриваем текущую версию PHP:

  1. php -v
Вывод
PHP 8.1.2-1ubuntu2.17 (cli) (built: May 1 2024 10:10:07) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2-1ubuntu2.17, Copyright (c), by Zend Technologies

7. Следующим шагом, определяем локацию директории, в которую необходимо будет устанавливать IonCube Loader.

  1. php -i | grep extension_dir
Вывод
extension_dir => /usr/lib/php/20210902 => /usr/lib/php/20210902

Локация /usr/lib/php/20210902 понадобится нам в дальнейшем процессе установки. В ОС из ветки Centos такая папка может иметь вид /usr/lib64/php/modules.

8. Копируем файлы IonCube в нужную директорию.

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

9. Теперь необходимо внести правки в файлы конфигурации php.ini. В разных конфигурациях сервера у них может варьироваться локация:

  1. sudo nano /etc/php/8.1/cli/php.ini #для PHP CLI
  2. sudo nano /etc/php/8.1/fpm/php.ini #для PHP-FPM & Nginx
  3. sudo nano /etc/php/8.1/apache2/php.ini #для Apache2

Вставьте строку следующего вида в самое начало php.ini:

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

8. Выполните рестарт вебсервера:

Apache Ubuntu/Debian
  1. sudo systemctl restart apache2
Apache Centos/Rocky/Alma
  1. sudo systemctl restart httpd
Nginx/PHP-FPM
  1. sudo systemctl restart nginx
  2. sudo systemctl restart php-fpm

9. Проверьте правильность установки командой:

  1. php -v

Если установка успешна, строка с информацией о текущей версии IonCube будет отображаться следующим образом:

Вывод
PHP 8.1.2-1ubuntu2.17 (cli) (built: May 1 2024 10:10:07) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with the ionCube PHP Loader v13.0.2, Copyright (c) 2002-2023, by ionCube Ltd. with Zend OPcache v8.1.2-1ubuntu2.17, Copyright (c), by Zend Technologies