Установка Ioncube Loader на php7.4 в Ubuntu/ CentOS/ Debian
Ioncube Loader это PHP модуль, для загрузки файлов, защищенных ПО Ioncube Encoder. Ioncube обычно используется коммерческими компаниями, занимающимися разработкой на PHP для защиты их продуктов.
1. Подготовка
Предположим, что вебсервер с PHP уже настроены и работают. В хоте установки мы будем использовать Nano и Wget.
Если у вас они не установлены, то установим их:
CentOS
yum install nano wget
Debian/Ubuntu
apt-get install nano wget
2. Загрузка Ioncube Loader
Ioncube Loader может быть загружен с официального сайта Ioncube Inc. Есть версии как под 32-битные системы, так и под 64-битные.
Для начала выясним, какая разрядность у системы на сервере, набрав:
uname -a
В результате увидим подобный результат:
Linux port 5.4.0-48-generic #52-Ubuntu SMP Thu Sep 10 10:58:49 UTC 2020 x86_64 x 86_64 x86_64 GNU/Linux
Если в результате есть x86_64, значит сервер работает с64-битным ядром Linux, иначе 32-битное.
Загрузим сам Ioncube Loader в формате tar.gz в папку /tmp, после чего распакуем его.
Для 64-битных систем:
Заходим в директорию тмп:
cd /tmp
Скачиваем в нее архим:
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
и распаковываем:
tar xfz ioncube_loaders_lin_x86-64.tar.gz
Так же для 32-битных систем:
cd /tmp
После результате распаковки мы получили папку ioncube
3. Так какой Ioncube Loader нам устанавливать?
После перехода в папку /tmp/ioncube/ вы увидите много файлов:
ls /tmp/ioncube/
LICENSE.txt ioncube_loader_lin_5.0_ts.so ioncube_loader_lin_5.6.so
README.txt ioncube_loader_lin_5.1.so ioncube_loader_lin_5.6_ts.so
USER-GUIDE.pdf ioncube_loader_lin_5.1_ts.so ioncube_loader_lin_7.0.so
USER-GUIDE.txt ioncube_loader_lin_5.2.so ioncube_loader_lin_7.0_ts.so
ioncube_loader_lin_4.1.so ioncube_loader_lin_5.2_ts.so ioncube_loader_lin_7.1.so
ioncube_loader_lin_4.2.so ioncube_loader_lin_5.3.so ioncube_loader_lin_7.1_ts.so
ioncube_loader_lin_4.3.so ioncube_loader_lin_5.3_ts.so ioncube_loader_lin_7.2.so
ioncube_loader_lin_4.3_ts.so ioncube_loader_lin_5.4.so ioncube_loader_lin_7.2_ts.so
ioncube_loader_lin_4.4.so ioncube_loader_lin_5.4_ts.so ioncube_loader_lin_7.3.so
ioncube_loader_lin_4.4_ts.so ioncube_loader_lin_5.5.so ioncube_loader_lin_7.3_ts.so
ioncube_loader_lin_5.0.so ioncube_loader_lin_5.5_ts.so loader-wizard.php
ioncube_loader_lin_5.2.so ioncube_loader_lin_7.4.so
ioncube_loader_lin_5.2_ts.so ioncube_loader_lin_7.4_ts.so
Число в имени файла соответствует версии PHP, для которой он собран, а _tsэтоThread Safeверсии. Мы будем использовать обычную версию 7.4.so (не Thread Safe).
Для начала выясним, какая версия PHP у нас установлена:
php -v
В результате вы получите нечто подобное:
PHP 7.4.3 (cli) (built: May 26 2020 12:24:22) ( NTS )
Copyright © The PHP Group
У нас установлен PHP версии 7.4 Запомним ее.
Теперь выясним, где расположена папка с расширениями PHP:
php -i | grep extension_dir
Получаем подобный результат:
extension_dir => /usr/lib/php/20190902 => /usr/lib/php/20190902
На скриншоте нужный нам путь был выделен. И это
/usr/lib/php/20190902 .
У вас может быть другой путь, в зависимости от операционной системы и версии PHP.
Скопируем Ioncube Loader для PHP 7.4 в папку расширений:
cp /tmp/ioncube/ioncube_loader_lin_7.4.so /usr/lib/php/20190902
Не забудьте, чтоцифра в имени файла – версия PHP, д которой собран Ioncube Loader. Не перепутайте.
4. Настройка PHP для Ioncube Loader
Здесь нам понадобится добавить в конфигурацию PHP (php.ini) строку, отвечающую за загрузку расширения:
Эта операция различается для CentOS и Debian/Ubuntu:
4.1 Для CentOS
В CentOS есть основной файл php.ini, в который мы и добавим вышеуказанную строку. Откроем файл для редактирования:
nano /etc/php.ini
И добавим строку в него:
zend_extension = /usr/lib/php/20190902/ioncube_loader_lin_7.4.so
У вас будет другой путь, поэтому проверьте, что ничего не перепутали.
После этого сохраняем файл и перезапускаем вебсервер и PHP (если PHP НЕ как модуль Apache):
service httpd restart
service php-fpm restart
4.2 Для Debian/Ubuntu
В отличие от CentOS в Debian/Ubuntu есть несколько файлов php.ini, для PHP CLI (командная строка), CGI, модуля Apache и PHP FPM.
Обычно они расположены по следующим путям:
/etc/php/php7.4/apache2/php.ini
/etc/php/php7.4/cli/php.ini
/etc/php/php7.4/cgi/php.ini
/etc/php/php7.4/fpm/php.ini
Нам потребуется отредактировать каждый из них или отредактировать только нужные вам (допустим вам не нужен Ioncube Loader в CGI)
Также как и в CentOS открываем файл для редактирования и добавляем вышеуказанную строку:
Для модуля Apache:
nano /etc/php/php7.4/apache2/php.ini
И вставляем
zend_extension = /usr/lib/php/20190902/ioncube_loader_lin_7.4.so
Эту же операцию проводим для остальных файлов.
После чего перезагружаем вебсервер и PHP (если PHP НЕ как модуль Apache):
service apache2 restart
service php7.4-fpm restart
5. Проверяем Ioncube Loader
Проверим, правильно ли мы установили Ioncube Loader, для этого в консоли выполните следующую команду:
php -v
В результате вы получите что-то вроде
PHP 7.4.3 (cli) (built: May 26 2020 12:24:22) ( NTS )
Copyright © The PHP Group
Zend Engine v3.4.0, Copyright © Zend Technologies
with Zend OPcache v7.4.3, Copyright ©, by Zend Technologies .