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
В результате увидим подобный результат:
Если в результате есть x86_64, значит сервер работает с 64-битным ядром Linux, иначе 32-битное.
Загрузим сам 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 версии 5.6. Запомним ее.
Теперь выясним, где расположена папка с расширениями PHP:
php -i | grep extension_dir
Получаем подобный результат:
На скриншоте нужный нам путь был выделен. И это /usr/lib/php5/20131226. У вас может быть другой путь, в зависимости от операционной системы и версии PHP.
Скопируем 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 успешно устновлен и работает (выделен на скриншоте).
Учтите, что если вы не устанавливали Ioncube Loader для консоли (CLI), то он может отсутствовать в выводе команды, поэтому нужно использовать вывод phpinfo() на сайте:
Создайте на вашем сайте файл с произвольным именем и добавьте в него:
<?php phpinfo(); ?>
После чего откройте в браузере этот файл, вы должны увидеть длинный вывод с большим количеством информации, но нам интересна эта часть:
Спасибо.Как изменить nano /etc/php5/apache2/php.ini ? Извенити,я новичок в люнекс.Даже незнаю как изменить и сохранить.
Спасибо огромное за статью. Успешно!
Еще одно спасибо
Супер спасибо) настроил все работает.
Мужик, спасибо большое! Все заработало! Ты просто мировой чувак, повсюду инструкции для апач, все прям четко под Ubuntu + Nginx + php-fpm и под мою версию 5.6! Невероятно
Пожалуйста 🙂
Спасибо! Заработало!
Только нужно помнить что при заливке в tmp папку. При рестарте сервера файлы будут удалены ваши
Да, это так, поэтому /tmp в статье используется для временных файлов, а нужные после этого просто были скопированы на свое место