смотрим нашу версию php
php -v
Создаём каталог
cd $(mktemp -d)
Смотрим архитектуру и качаем нужную версию
uname -m
wget http://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
или
wget http://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
(офсайт)
распаковываем
tar zxvf ioncube_loaders_lin_*
перемещаем на новое место
mv ioncube /usr/local/
или
mv ioncube /opt/
дальше надо вписать в конфиги php, но некоторые доки советуют вписывать в php.ini - это неправильно. Причём был случай - клиент сам вписал куда-то в середину файла и php просто его игнорировал. Правильно - создать отдельный файл в /etc/php5/conf.d/
echo "zend_extension=/usr/local/ioncube/ioncube_loader_lin_5.2.so" >> /etc/php5/conf.d/ioncube.ini
Эта строка может меняться, если мы сохранили в /opt или у нас другая версия php, приводим под свою систему.
Теперь проверяем. Проверка через phpinfo() мало что даёт -- если модуль не подключился, он там указан не будет. Но причин не покажет. Надо через сам php:
php -v
Виды ответов:
Failed loading /usr/local/ioncube/ioncube_loader_lin_5.2_ts.so: /usr/local/ioncube/ioncube_loader_lin_5.2_ts.so: wrong ELF class: ELFCLASS32
Скачана 32-бит версия, а нужна 64.
Failed loading /usr/local/ioncube/ioncube_loader_lin_5.2_ts.so: /usr/local/ioncube/ioncube_loader_lin_5.2.so: wrong ELF class: ELFCLASS64
Тут наоборот, система 32 бита (x86), а скачали 64 (x86-64). Качаем версию под 32 бита.
Failed loading /usr/local/ioncube/ioncube_loader_lin_5.2_ts.so: /usr/local/ioncube/ioncube_loader_lin_5.2_ts.so: undefined symbol: core_globals_id
Значит, нам нужен другой вариант (не _ts)
С "не той" версией php не проверялось.
Когда всё нормально, у меня полнвый вывод был такой:
# php -v
PHP 5.2.6-1+lenny9 with Suhosin-Patch 0.9.6.2 (cli) (built: Aug 4 2010 06:06:53)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
with the ionCube PHP Loader v4.0.8, Copyright (c) 2002-2011, by ionCube Ltd.
Теперь перезапустим апач
/etc/init.d/apache2 restart
Теперь в phpinfo() должна появиться подпись как в php -v и в Additional Modules будет строка ionCube Loader
Делалось на основе доки http://magento-forum.ru/topic/1008/, но переработано и дополнено.
Спасибо. Обнаружил в логе Apache ошибку Failed loading /usr/local/ioncube/ioncube_loader_lin_5.2_ts.so: /usr/local/ioncube/ioncube_loader_lin_5.2_ts.so: wrong ELF class: ELFCLASS32.
ОтветитьУдалитьВаш материал помог ее исправить.
вот такую ошибку пишет Failed loading /usr/local/ioncube/ioncube_loader_lin_5.4.so: /usr/local/ioncube/ioncube_loader_lin_5.4.so: wrong ELF class: ELFCLASS64
ОтветитьУдалитьЯ пробывал и 86 и 64 не помогает ОС стоит Debian, качал вот этот архив http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
> ELFCLASS64
ОтветитьУдалитьэто версия 64 бита, система видимо 32. Качаем ioncube_loaders_lin_x86.tar.gz
на 32 бит версии этой ошибки быть не может.
Так я сразу качал 86-64 версию, ну да ладно, скачал ioncube_loaders_lin_x86.tar.gz вот что пишет:
УдалитьFailed loading /usr/local/ioncube/ioncube_loader_lin_5.2_ts.so: /usr/local/ioncube/ioncube_loader_lin_5.2_ts.so: undefined symbol: ts_resource_ex
Все спасибо, проблема решена.
Удалитьа нет, не решена, вот что пишет Cannot load the ionCube PHP Loader - it was built with configuration 2.2.0, whereas running engine is API220090626,NTS
УдалитьБуржуи рулят:
УдалитьCannot load the ionCube PHP Loader - it was built with configuration 2.2.0, whereas running engine is API220090626,NTS
This PHP error is being caused because IonCube is trying to load the old version. To update this on Debian:
EDIT: /etc/php5/conf.d/aa_ioncube.ini
FIND: zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.2.so
REPLACE: zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.3.so
Спасибо автору, все работает!
ОтветитьУдалитьСпасибо автору! Все работает, установка очень легкая потому, что очень доходчиво расписан процесс!
ОтветитьУдалитьу меня пишет Invalid command 'zend_extension'
ОтветитьУдалитьЗдравствуйте. У меня пишет такое. Подскажите, как исправить?
ОтветитьУдалитьFailed loading /usr/lib/php5/20100525/ioncube_loader_lin_5.4_ts.so: /usr/lib/ph
p5/20100525/ioncube_loader_lin_5.4_ts.so: undefined symbol: core_globals_id PHP Warning: Module 'ionCube Loader' already loaded in Unknown on line 0 The ionCube PHP Loader is disabled because of startup problems. [PHP Modules]