Некоторые модули CMS требуют наличия плагинов ionCube PHP Loader и Zend Guard Loader, которые позволяют запускать закодированные соответствующими кодировщиками PHP-скрипты. Модуль Zend Guard Loader пришел на смену Zend Optimizer который использовался под PHP 5.2 и 5.3 и не совместимо с ним.
Модули собирать не нужно. Проекты предлагают их в скомпилированном виде под 32 и 64 битные платформы. Смотрим версию OC
$ uname -a
В дальнейшем будем ориентироваться на 64 битную платформу.
Скачиваем и распаковываем ionCube PHP Loader:
$ wget -c http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
$ tar xzvf ioncube_loaders_lin_x86-64.tar.gz
Внутри несколько файлов. Нам нужно выбрать для своей версии PHP
$ php -v
PHP 5.5.9-1ubuntu4.20 (cli) (built: Oct 3 2016 13:00:37)
У нас версия PHP 5.5, поэтому интересуют два файла ioncube_loader_lin_5.5_ts.so и ioncube_loader_lin_5.5.so.
Копируем их на место:
$ cp -v ioncube_loaders_lin_x86-64/ioncube_loader_lin_5.5_ts.so /usr/lib/php5/
$ cp -v ioncube_loaders_lin_x86-64/ioncube_loader_lin_5.5.so /usr/lib/php5/
Чтобы в последствии не путаться. Занесем все настройки в отдельный файл
$ sudo nano /etc/php5/mods-available/ioncube.ini
[ionCube Loader]
zend_extension = /usr/lib/php5/ioncube_loader_lin_5.5.so
zend_extension_ts = /usr/lib/php5/ioncube_loader_lin_5.5_ts.so
Вешать сервер не очень хорошо, поэтому вначале проверим в командной строке. Затем если все нормально, подключим к веб-серверу.
$ ln -s /etc/php5/mods-available/ioncube.ini /etc/php5/cli/conf.d/00-ioncube.ini
Обращаю внимание на номер. ionCube должен загружаться первым. Иначе получите ошибку.
$ php -m
PHP Fatal error: [ionCube Loader] The Loader must appear as the first entry in the php.ini file in Unknown on line 0
Проверяем.
$ php -v
PHP 5.5.9-1ubuntu4.20 (cli) (built: Oct 3 2016 13:00:37)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v6.0.5, Copyright (c) 2002-2016, by ionCube Ltd.
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
$ php -m
....
[Zend Modules]
Zend OPcache
the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured)
Если все нормально подключаем веб-сервер.
$ ln -s /etc/php5/mods-available/zend.ini /etc/php5/fpm/conf.d/00-ioncube.ini
$ service php5-fpm restart
Zend Guard Loader подключается почти аналогично. Регистрируемся на сайте https://www.zend.com/en/products/loader, скачиваем архив под свою платформу и версию PHP.
Распаковываем.
$ tar xzvf zend-loader-php5.5-linux-x86_64.tar.gz
zend-loader-php5.5-linux-x86_64/
zend-loader-php5.5-linux-x86_64/README.txt
zend-loader-php5.5-linux-x86_64/ZendGuardLoader.so
zend-loader-php5.5-linux-x86_64/opcache.so
Внутри есть и модуль OPCache но лучше использовать тот что идет в дистрибутиве. Копируем на место.
$ cp -v zend-loader-php5.5-linux-x86_64/ZendGuardLoader.so /usr/lib/php5/
‘zend-loader-php5.5-linux-x86_64/ZendGuardLoader.so’ -> ‘/usr/lib/php5/ZendGuardLoader.so’
Создаем конфигурационный файл.
$ sudo nano /etc/php5/mods-available/zend.ini
[Zend]
zend_extension=/usr/lib/php5/ZendGuardLoader.so
zend_loader.enable=1
Проверяем в CLI.
$ sudo ln -s /etc/php5/mods-available/zend.ini /etc/php5/cli/conf.d/01-zend.ini
$ php -v
PHP 5.5.9-1ubuntu4.20 (cli) (built: Oct 3 2016 13:00:37)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v6.0.5, Copyright (c) 2002-2016, by ionCube Ltd.
with Zend Guard Loader v3.3, Copyright (c) 1998-2014, by Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
$ php -m
...
[Zend Modules]
Zend Guard Loader
Zend OPcache
the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured)
Теперь можно подключать веб-сервер.
$ sudo ln -s /etc/php5/mods-available/zend.ini /etc/php5/fpm/01-zend.ini
$ sudo service php5-fpm restart