RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


linux:ioncube

Установка ionCube Loader

Ioncube Loader скачиваем с сайта http://www.ioncube.com/loaders.php

CentOS

Проверяем текущую версию PHP

# php -v
PHP 5.3.3 (cli) (built: May 10 2016 21:30:21) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Скачиваем архив ionCube в /tmp

Для x86

# wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz

Для x86_64

# wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Распаковываем архив

# tar xzvf ioncube*

Копируем модули ionCube

Для x86

# mv ioncube /usr/lib/php/ioncube

Для x86_64

# mv ioncube /usr/lib64/php/ioncube

Добавляем модуль

Для x86

# echo "zend_extension=/usr/lib/php/ioncube/ioncube_loader_lin_5.3.so" >> /etc/php.d/ioncube.ini

Для x86_64

# echo "zend_extension=/usr/lib64/php/ioncube/ioncube_loader_lin_5.3.so" >> /etc/php.d/ioncube.ini

Перезагружаем веб-сервер Apache или php-fpm

# service httpd restart
# service php-fpm restart

Проверяем загружен ли модуль

# php -m | grep ionCube

Проверяем еще раз php -v

PHP 5.3.3 (cli) (built: May 10 2016 21:30:21) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v5.1.2, Copyright (c) 2002-2016, by ionCube Ltd.

Debian

Проверяем текущую версию PHP

# php -v
PHP 5.6.20-0+deb8u1 (cli) (built: Apr 27 2016 11:26:05) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

Скачиваем архив ionCube в /tmp

Для x86

# wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz

Для x86_64

# wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Распаковываем архив

# tar xzvf ioncube*

Смотрим где расположен каталог с php модулями

# php -i | grep extension_dir
extension_dir => /usr/lib/php5/20131226 => /usr/lib/php5/20131226

Копируем .so файл для нашей версии php

# cp ./ioncube_loader_lin_5.6.so /usr/lib/php5/20131226
# chmod 755 /usr/lib/php5/20131226/ioncube_loader_lin_5.6.so
# echo "zend_extension=/usr/lib/php5/20131226/ioncube_loader_lin_5.6.so" >> /etc/php5/mods-available/ioncube.ini
# ln -s /etc/php5/mods-available/ioncube.ini /etc/php5/fpm/conf.d/01-ioncube.ini
# ln -s /etc/php5/mods-available/ioncube.ini /etc/php5/cli/conf.d/01-ioncube.ini
# ln -s /etc/php5/mods-available/ioncube.ini /etc/php5/cgi/conf.d/01-ioncube.ini
# ln -s /etc/php5/mods-available/ioncube.ini /etc/php5/apache2/conf.d/01-ioncube.ini

Перезагружаем веб-сервер Apache или php5-fpm

# service apache2 restart
# service php5-fpm restart

Проверяем загружен ли модуль

# php -m | grep ionCube

Проверяем еще раз php -v

# php -v
PHP 5.6.20-0+deb8u1 (cli) (built: Apr 27 2016 11:26:05) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v5.1.2, Copyright (c) 2002-2016, by ionCube Ltd.
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

Дополнительная информация

Thread Safety

Внутри каталога ioncube находятся файлы ioncube_loader_lin_5.x.so и ioncube_loader_lin_5.x_ts.so

ts версия нужна для режима Thread safety:

What does thread safety mean when downloading PHP? | Что означает потокобезопасность при скачке PHP?

Если в phpinfo() значение Thread Safety установлено в disable, то берем файл ioncube_loader_lin_5.x.so Если установлено значение enable, то берем файл ioncube_loader_lin_5.x_ts.so

Какая основная разница между этими версиями?

Какая основная разница между этими версиями?

http://softtime.ru/forum/read.php?id_forum=1&id_theme=85301

Просто модели параллельной обработки в разных операционных системах разные. Где-то параллельные процессы, а где-то параллельные потоки. Если PHP встраивается как модуль, он может выполняться в параллельных потоках. Если же он устанавливается как внешние CGI-приложения, то только как параллельный процесс. В последнем случае по барабану что он внутри своего процесса делает, поэтому он может быть non thread safe php. Если же он выполняется как часть потока или в виде отдельного потока, с среде других параллельных потоков, он должен подчиняться правилам синхронизации при доступе к ресурсам (thread safe php). В UNIX-системах традиционно были сильны именно процессы, часто системы целиком на них выстраивали, в Windows - процесс это просто контейнер, если в нем нет ни одного потока, он ничего не делает и операционная система его быстро уничтожает. Всю работу делают потоки, которых может быть много. В UNIX-же вообще нет таких потоков, там проще процесс создать.

Т.е. фраза " Насколько я понял, thread safe php не создаёт отдельного потока" не совсем корректна - в Windows вы ничего без потоков не сделаете. Просто у вас наличие потоков может играть решающую роль, а может не играть такой роли. Ведь потоки имеют общее адресное пространство, а процессы раздельное. Т.е. одному процессу не так просто записать в память другому процессу информацию - нужно приложить усилия (переменные окружения, сообщения, сигналы, файлы, то что называется межпроцессорным взаимодействием). В потоках же наоборот нужно приложить усилия, чтобы они одновременно в одно и тоже место не обращались.


PHP Fatal error

The ionCube Loader is a Zend-Engine extension and not a module

Please specify the Loader using ‘zend_extension’ in php.ini

Используйте в ini файле zend_extension= вместо extension=

The Loader must appear as the first entry in the php.ini file in Unknown on line 0

ionCube модуль должен загружаться первым, а после него уже opcache и все остальные.

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
 
linux/ioncube.txt · Последнее изменение: 2016/07/21 10:40 — 127.0.0.1