Ioncube Loader это PHP модуль, для загрузки файлов, защищенных ПО Ioncube Encoder. Ioncube обычно используется коммерческими компаниями, занимающимися разработкой на PHP для защиты их продуктов.
В этой статье я расскажу, как происходит установка Ioncube Loader в CentOS/Debian/Ubuntu.
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
В результате увидим подобный результат:
Загрузим сам Ioncube Loader в формате tar.gz в папку /tmp, после чего распакуем его.
Для 64-битных систем:
cd /tmp
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar xfz ioncube_loaders_lin_x86-64.tar.gz
Для 32-битных систем:
cd /tmp
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
tar xfz ioncube_loaders_lin_x86.tar.gz
После результате распаковки мы получили папку ioncube
3. Так какой Ioncube Loader нам устанавливать?
После перехода в папку /tmp/ioncube/ вы увидите много файлов:
Число в имени файла соответствует версии PHP, для которой он собран, а _ts это Thread Safe версии. Мы будем использовать обычную версию (не Thread Safe).
Для начала выясним, какая версия PHP у нас установлена:
php -v
В результате вы получите нечто подобное:
Теперь выясним, где расположена папка с расширениями PHP:
php -i | grep extension_dir
Получаем подобный результат:
Скопируем Ioncube Loader для PHP 5.6 в папку расширений:
cp /tmp/ioncube/ioncube_loader_lin_5.6.so /usr/lib/php5/20131226/
Не забудьте, что цифра в имени файла — версия 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/php5/20131226/ioncube_loader_lin_5.6.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/php5/apache2/php.ini
/etc/php5/cli/php.ini
/etc/php5/cgi/php.ini
/etc/php5/fpm/php.ini
Нам потребуется отредактировать каждый из них или отредактировать только нужные вам (допустим вам не нужен Ioncube Loader в CGI)
Также как и в CentOS открываем файл для редактирования и добавляем вышеуказанную строку:
Для модуля Apache:
nano /etc/php5/apache2/php.ini
И вставляем
zend_extension = /usr/lib/php5/20131226/ioncube_loader_lin_5.6.so
Эту же операцию проводим для остальных файлов.
После чего перезагружаем вебсервер и PHP (если PHP НЕ как модуль Apache):
service apache2 restart
service php5-fpm restart
5. Проверяем Ioncube Loader
Проверим, правильно ли мы установили Ioncube Loader, для этого в консоли выполните следующую команду:
php -v
В результате вы получите что-то вроде
Учтите, что если вы не устанавливали Ioncube Loader для консоли (CLI), то он может отсутствовать в выводе команды, поэтому нужно использовать вывод phpinfo() на сайте:
Создайте на вашем сайте файл с произвольным именем и добавьте в него:
<?php phpinfo(); ?>
После чего откройте в браузере этот файл, вы должны увидеть длинный вывод с большим количеством информации, но нам интересна эта часть: