Понадобилось мне подключить ионкуб к PHP 5.4. Ничего сложного нет, но заметку накатаю… 🙂
Первым делом перейдем на страницу загрузки модуля на сайте IonCube. Выбираем модуль под Вашу архитектуру. У меня Debian 7 amd64, потому был выбран Linux (x86-64).
Скачиваем:
# wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
Распаковываем:
# tar -xvf ioncube_loaders_lin_x86-64.tar.gz
Внутри мы видим два файла: ioncube_loader_lin_5.4.so и ioncube/ioncube_loader_lin_5.4_ts.so.
Приставка «ts» означает, что данная версия нужна для режима «thread safe». Зачастую вам будет нужен первый файл, но для полной уверенности достаточно посмотреть в phpinfo() на значение параметра «Thread Safety». Если значение «disable», тогда берем первый, если «enable» — второй файл, с «ts».
Копируем нужный файл:
# cp ioncube/ioncube_loader_lin_5.4.so /usr/lib/php5/20100525/
или
# cp ioncube/ioncube_loader_lin_5.4_ts.so /usr/lib/php5/20100525/
Создаем ini-файл для PHP:
# nano /etc/php5/mods-available/ioncube.ini
Cодержимое файла (нужно указать свою версию файла!:
; configuration for php IonCube module ; priority = 30 zend_extension = /usr/lib/php5/20100525/ioncube_loader_lin_5.4.so
Создадим линк:
# ln -s /etc/php5/mods-available/ioncube.ini /etc/php5/conf.d/30-ioncube.ini
Перезагружаем PHP-FPM:
# service php5-fpm restart
Если всё ОК, то проверяем как подгрузился модуль:
# php -m
Должны в конце получить такое:
[Zend Modules] the ionCube PHP Loader
Поздравляю, Вы подключили IonCube! 😀
10 февраля, 2014 at 7:43 пп
Мое почтение. Хорошая статья, но есть один странный момент.
Почему мы копируем ioncube_loader_lin_5.3.so для php 5.4 и в итоге подключаем в конфиге ioncube_loader_lin_5.4, когда копировали 5.3? Чувствую, что имеет место небольшая ошибка в цифрах.
10 февраля, 2014 at 11:04 пп
Спасибо, что указали. Это просто опечатка, писалось на быструю руку. версию ионкуба нужно брать под версию пхп, в нашем случае 5.4. На офсайте в архиве 5.3 и 5.5 тоже есть.
12 февраля, 2014 at 4:58 дп
Обнаружился еще момент, у меня тоже 5.4 версия, но после установки и php -v, я получал:
Failed loading /usr/lib/php5/20100525/ioncube_loader_lin_5.4_ts.so: /usr/lib/php5/20100525/ioncube_loader_lin_5.4_ts.so: undefined symbol: core_globals_id
Т.е. получается, использование обоих лоадеров с PHP 5.4.4-14+deb7u7 (cli) дает ошибку выше. Пришлось использовать без thread safety. Так понимаю при использовании php-fp m такого не было?
13 февраля, 2014 at 9:56 пп
Мда, этот момент я упустил… Даже не проверил, что на выхлопе при проверке версии. Честно сказать, ионкуб не использую, в тот момент я удалял его на другом сервере и для интереса ради поставил на своем для теста скрипта, после чего удачно удалил.
ts — это для режима «thread safe».
# php -i |grep Thread -i
смотрим, что в ответе:
Thread Safety => disabled
Значит ts-версию удаляем: модуль и запись в конфиге.
P.S. позднее перенесу в заметку
11 октября, 2014 at 2:56 пп
Дружище, за заметку спасибо, про TS исключение не забудь добавить все-таки. Важный момент.
19 октября, 2014 at 3:20 пп
сделал все по инструкции но почему то ошибка((
root@server1:~# php -m
Failed loading /usr/local/ioncube/ioncube_loader_lin_5.4.so: /usr/local/ioncube/ioncube_loader_lin_5.4.so: wrong ELF class: ELFCLASS64
Failed loading /usr/lib/php5/20100525+lfs/ioncube_loader_lin_5.4.so: /usr/lib/php5/20100525+lfs/ioncube_loader_lin_5.4.so: wrong ELF class: ELFCLASS64
[PHP Modules]
30 октября, 2014 at 2:42 пп
Ты просто ставишь не ту версию. У меня опсывается установка x64-версии, а тебе нужна i386. Скачай другой архив с офсайта, а дальше по инструкции.
24 февраля, 2015 at 8:39 дп
Отработало на debian x64 wheezy nginx+php-fpm
Спасибо за гайд.
6 марта, 2015 at 7:40 пп
Спасибо за статью!
В знак почтения укажу на ошибки, так как обжегся на них.
У меня частично получилось, написал в тех. поддержку хостера, вот ответ:
«В случае же с командной строкой Вы допустили пару ошибок: в конфигурационном файле /etc/php5/mods-available/ioncube.ini необходимо оставить только первую строку, а не обе сразу. Также важен порядок загрузки модулей, поэтому в каталоге /etc/php5/cli/conf.d/ файл 30-ioncube.ini должен называться 05-ioncube.ini»
С уважением к Вашему труду!
14 мая, 2015 at 1:45 пп
Спасибо большое!
Немного выше в комментариях поднимался этот вопрос. К сожалению, на тот момент не дошли руки исправить ошибку в заметке.
Уже поправил 🙂