6.7 Встановлення 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