- Как установить ionCube и для чего нужен этот модуль
- Итак, что такое ionCube?
- Как самостоятельно проверить наличие ionCube на сервере?
- Как самостоятельно установить модуль ioncube на локальный сервер?
- Как самостоятельно установить модуль ioncube на хостинг?
- Как проверить есть ли ioncube loader
- Как установить ionCube loader
- Установка на локальный сервер
- Установка на хостинге
- Установка ionCube в Ubuntu 16.04
- Требования
- 1: Выбор версии ionCube
- 2: Установка ionCube
- 3: Тестирование ionCube
- Ликбез по IonCube
- Список понятий
- Необходимое ПО
- Кодирование и обфускация исходного кода
- Создание лицензии
- Установка IonCube Loader
- Как установить ionCube?
- Зачем нужен ionCube и как проверить его наличие
- ionCube и хостинг
- Как самостоятельно проверить наличие ionCube?
- Способ #2
- Способ #3
- Как самостоятельно установить модуль на свой сервер?
Как установить ionCube и для чего нужен этот модуль
Сегодня поговорим о специальном модуле — ionCube, что это такое и для чего он нужен. Разберёмся, как установить ionCube loader на сервер. Лично мне он требуется для установки популярного среди пользователей joomla! и zoo приложения JBZoo, В этом посте я поясню как установить модуль ionCube на локальный сервер и на сервер вашего хостинга.
Итак, что такое ionCube?
Навигация по тексту
Программное обеспечение ionCube loader — это популярный способ шифрования php-файлов. Модуль полностью бесплатный и скачать его можно с официального сайта по ссылке: http://www.ioncube.com/loaders.php
Некоторые приложения требуют наличие этого модуля, в частности приложение, которое я часто использую в своей работе — JBZoo. Начиная с версии 2.0.0 для корректной работы JBZoo обязательна поддержка модуля ionCube Loader.
Большинство современных хостингов уже поддерживают модуль ionCube. В противном случае, вы всегда можете задать вопрос в техподдержку хостера и практически обычно его включают по первому запросу.
Как самостоятельно проверить наличие ionCube на сервере?
Как самостоятельно установить модуль ioncube на локальный сервер?
Если после перезагрузки сервер не запускается, то скорее всего
Как самостоятельно установить модуль ioncube на хостинг?
Как я уже говорил, большинство хостингов уже содержат включённый модуль ioncube, либо подключают его при первому требованию. Вот, к примеру, как рекомендуют подключать модуль на хостинге logol.ru:
Выполните следующие действия:
-скачайте библиотеку для архитектуры Linux (x86-64) в виде tar.gz или zip-архива с сайта http://www.ioncube.com/loaders.php
-разархивируйте файлы библиотеки (в результате появится каталог ioncube)
-загрузите каталог ioncube в домашний каталог
/ на вашей хостинговой площадке
в каталоге, где находится PHP-скрипт, для которого подключается ionCube,
-создайте файл php.ini со следующей строкой:
zend_extension=»/home/ВАШ_ЛОГИН_НА_CPANEL/ioncube/ioncube_loader_lin_5.2.so»
Пример:
zend_extension=»/home/cp123456/ioncube/ioncube_loader_lin_5.2.so»
Важно:
Указанная выше строка должна быть самой первой из всех подключаемых zend_extension.
Как видите, установить ioncube на сервер достаточно просто. Если возникнут вопросы, задавайте их в комментариях, постараюсь ответить.
Как проверить есть ли ioncube loader
Как установить ionCube loader
Некоторые веб-приложения требуют для своей работы установленного на веб-сервере программного обеспечения ionCube loader. Это ПО обеспечивает дешифрацию и эффективное выполнение откомпилированного и зашифрованного php кода. Процесс установки ionCube loader довольно прост, но для тех, кто впервые столкнулся с установкой и не знаком с английским языком, на котором работает мастер установки, возможно возникнут вопросы. Итак, рассмотрим процесс установки ionCube loader на локальном сервере и на сервере хостинга.
Установка на локальный сервер
В качестве примера локального сервера возьмем Денвер для Windows, установленный в каталог, назначенный на диск Z:
Шаги установки:
Итак, следуем инструкции шаг за шагом:
рис. 3
После установки обязательно удалите файл мастера установки loader-wizard.php из корневой папки вашего сайта из соображений безопасности. Теперь можно устанавливать веб-приложения.
Установка на хостинге
Большинство хостинг провайдеров предустанавливают на свои серверы ionCube loader. Поэтому сначала узнайте у своего хостинг-провайдера, установлен ли уже на вашем сервере ionCube loader. Это можно узнать самостоятельно, запустив мастер установки loader-wizard.php, полученный на первом этапе установки на локальный сайт. Перепишите мастер в корневую директорию сайта и запустите в браузере с помощью URL www.мой-сат.ru/loader-wizard.php. Если вы увидите сообщение, подобное рис. 2, то ionCube loader уже установлен на вашем хостинге. Можно приступать к использованию веб-приложений. Так же возможно, что на хостинге установлена старая версия IONcube loader и в этом случае мастер порекомендует установить новую версию. Процесс обновления версии заключается в установке на ваш сайт новой версии ionCube loader, как будто он еще не установлен.
Если IONcube loader не установлен на вашем хостинге, то наилучшим выходом будет попросить хостера установить на ваш сервере IONcube loader. Так же на большинстве хостингов возможна самостоятельная установка, но необходимо проконсультироваться у службы поддержки хостинга как установить IONcube loader на свой сайт, так как в разных хостингах могут быть разные способы установки.
Установка ionCube в Ubuntu 16.04
ionCube – это модуль PHP, предназначенный для загрузки зашифрованных PHP-файлов и ускоряет загрузку веб-страниц, что необходимо для корректной работы многих PHP-приложений. Данное руководство поможет установить ionCube на сервер Ubuntu 16.04.
Требования
1: Выбор версии ionCube
Версия ionCube должна совпадать с версией PHP. Чтобы выбрать правильную версию ionCube, нужно знать:
Если у вас 64-битный сервер Ubuntu, то, скорее всего, PHP использует ту же архитектуру, но лучше это проверить. Для этого можно использовать сценарий PHP, который извлечёт информацию о текущих параметрах PHP.
Создайте файл info.php в корневом каталоге веб-сервера (по умолчанию это /var/www/html) с помощью текстового редактора.
sudo nano /var/www/html/info.php
Вставьте в него следующий код:
На экране появится страница с таким заголовком:
PHP Version 7.0.8-3ubuntu3
Ниже будет представлен список параметров PHP.
Как видите, версия PHP указана в самом заголовке. В данном случае используется версия 7.0.8. Обратите внимание на строку System. Если в конце этой строки вы видите x86_64, вы используете 64-битную версию PHP, а если i686, то 32-битную.
Теперь можно загрузить ionCube.
2: Установка ionCube
Посетите сайт ionCube и найдите ссылку на соответствующую версию пакета. В данном случае это 64-битный пакет Linux. Скопируйте ссылку на архив tar.gz и загрузите файл.
tar xvfz ioncube_loaders_lin_x86-64.tar.gz
Примечание: Версия может отличаться.
Эта команда создаст каталог ioncube, в котором хранятся разные файлы для разных версий PHP. В данном случае нужен файл для версии PHP 7.0, он называется ioncube_loader_lin_7.0.so. Этот файл нужно скопировать в каталог расширений PHP, extension_dir. Чтобы найти путь к нему, снова откройте страницу:
Путь к этому каталогу будет указан в строке extension_dir (в данном случае это /usr/lib/php/20151012). Скопируйте файл в указанное место:
sudo cp ioncube/ioncube_loader_lin_7.0.so /usr/lib/php/20151012/
Чтобы PHP-расширение загружалось, его нужно добавить в настройки PHP. Это можно сделать в конфигурационном файле php.ini, но лучше всё же создать отдельный файл для параметров расширения: так вы сможете загружать его раньше других расширений и избежать возможных конфликтов.
Чтобы узнать, где можно создать пользовательский конфигурационный файл, откройте страницу info.php:
Теперь нужно создать файл 00-ioncube.in в каталоге /etc/php/7.0/apache2/conf.d. Два нуля в начале файла позволяют загружать этот файл прежде других расширений PHP.
sudo nano /etc/php/7.0/apache2/conf.d/00-ioncube.ini
Добавьте в файл такую строку:
Сохраните и закройте файл.
Чтобы изменения вступили в силу, перезапустите веб-сервер:
# Apache:
sudo systemctl restart apache2.service
# Nginx:
sudo systemctl restart nginx
Также можно перезапустить php-fpm:
sudo systemctl restart php7.0-fpm.service
3: Тестирование ionCube
Вернитесь на страницу info.php:
Обновите её и найдите ключевое слово ionCube. Вы увидите:
[…] Zend engine v3.0.0. Copyright © 1998-2016 Zend Technologies
with the ionCube PHP Loader (enabled) + Instruction Protection from ioncube24.com […]
Это значит, что расширение ionCube загружено на сервер.
После установки ionCube страницу info.php нужно удалить: она открывает доступ к конфиденциальным данным сервера и подвергает его опасности.
sudo rm /var/www/html/info.php
Также вы можете удалить дополнительные файлы ionCube:
Расширение ionCube полностью готово к работе. Теперь вы можете использовать его для поддержки любого PHP-приложения, которому необходим этот модуль.
Ликбез по IonCube
IonCube — это набор утилит для командной строки, которые позволяют производить кодирование, обфускацию и лицензирование исходного кода, написанного на языке php.
Функционал IonCube очень обширен что бы о нем можно было написать в одной статье. Под катом я опишу основной функционал IonCube, который необходим для защиты кода от не лицензионного использования.
Список понятий
1. Кодирование исходного кода — процесс при котором исходный код, написанный на языке php, превращается в набор машинных команд, чтение и декодирование которых максимально затруднено.
2. Обфускация — приведение исходного кода программы к виду, сохраняющему ее функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию.
3. Лицензия — это специальный, закодированный приватным ключом файл, который необходим для запуска закодированного исходного кода.
Необходимое ПО
1. IonCube Encoder — набор бинарных файлов для разных ОС, при помощи которых можно кодировать исходный код, производить его обфускацию и генерировать лицензии. Платное ПО, но можно скачать триал версию.
Кодирование и обфускация исходного кода
В зависимости от версии PHP под которую написан код, IonCube Encoder предоставляет следующие бинарные файлы для выполнения кодирования и обфускации: ioncube_encoder, ioncube_encoder5 или ioncube_encoder53
Формат команды следующий:
./ioncube_encoder –o [options]
Ниже я перечислю основные опции необходимые для кодирования и обфускации кода:
—replace-target — опция говорит енкодеру что надо полностью заменить целевой каталог или файл, если он уже существует, новым каталогом или файлом. Например:
—copy @ — опция говорит енкодеру что надо копировать указанный файл или каталог (и все его подкаталоги) без кодирования его содержимого. Знак @ говорит о том, что путь к копируемому файлу или директории надо искать от корня кодируемой директории. Т.е. если было указано копировать каталог configs, то будет копироватся только каталог configs котороый лежит в корне кодируемой директории, а не например в подкатегории example/configs. В качестве примера можно привести каталог где лежат конфигурационные файлы и которые кодировать не нужно:
—ignore @ — опция говорит енкодеру что надо игнорировать указанный файл или директорию (и все ее поддриректории), при этом в результирующий каталог они не копируются.
—obfuscate — запускает процесс обфускации кода, в качестве объектов, к которым применяется обфускация могут быть: functions, linenos, locals или all. Например:
—obfuscation-key «some_unique_key» — обязательный параметр для обфускации, который задает уникальный ключ, что делает практически невозможным процесс декодирования кода.
— опция говорит энкодеру, что файл при запуске должен запрашивать файл лицензии. Путь к файлу лицензии будет относителен запросившему его файлу, так что лучше здесь указывать просто название файла лицензии, который IonCube Loader будет искать сперва в том же каталоге, в котором находится скрипт, запросивший файл лицензии, а не найдя будет идти рекурсивно в верх вплоть до корневой директории. Таким образом файл лицензии можно сохранять просто в корневом каталоге, куда установлено ваше приложение. Например:
Создание лицензии
Лицензии создаются при помощи бинарного файла make_license. Формат команды для создания лицензии:
./make_license –-passphrase –o
—passphrase — эта опция задает секретный ключ, который используется для формирования подписи для лицензии. Внимание: ключ должен совпадать с ключем, который использовался при кодировании исходного кода.
Ограничение лицензии по серверам
—allowed-server [ ][@[ ]][< >] — эта опция используется для ограничения валидности лицензии по домену, IP или MAC адресу сервера, для которого она предназначена.
Примеры.
1. Ограничение по домену:
—allowed-server www.foo.com
—allowed-server www.foo.com,www.bar.com
—allowed-server 1.2.3.4@
2. Ограничение по IP адресу:
—allowed-server 192.168.1.4
—allowed-server 192.168.1.4,192.168.1.20
Примечания:
1. Когда закодированный файл запрашивается через web-сервер, то IP сверяется с тем IP, который присылает web-сервер.
2. Когда закодированный файл запрашивается на прямую, например когда имеем дело с php shell скриптами, то IP сравнивается только с первичным IP адресом сетевого интерфейса.
3. Нельзя указать в ограничении IP адрес 127.0.0.1
3. Ограничения по MAC адресу. MAC адрес должен состоять из 6-ти байт и должен быть представлен в шестнадцатеричном виде, например:
4. Комбинирование ограничений. IonCube позволяет комбинировать ограничения, например:
Ограничение лицензии по времени
— позволяет задать период, на протяжении которого с момента генерации лицензия является валидной. Периоды можно задавать в следующих величинах: секунды (s), минуты (m). часы (h) или дни (d). Например:
—expire-in 360s
—expire-in 20m
—expire-in 24h
—expire-in 365d
—expire-on — позволяет задать точную дату, до которой лицензия является валидной. Например:
Установка IonCube Loader
1. Скачайте IonCube Loader для вашей ОС, он распространяется бесплатно.
3. В вашем php.ini пропишите путь к скачаной библиотеке. Например:
zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.3.so
zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.3_ts.so
zend_extension_ts = /usr/local/ioncube/ioncube_loader_lin_5.2.so
Обратите внимание что для PHP версией меньше 5.3 нужно указывать директиву zend_extension_ts если в хотите использовать библиотеку с функционалом «thread safety».
4. Перезагрузите web-сервер.
Вот в принципе и все, что нужно знать для защиты своего кода от не лицензионного использования. Больше информации Вы сможете найти на официальном сайте IonCube.
Как установить ionCube?
Зачем нужен ionCube и как проверить его наличие
ionCube — это популярный способ шифрования php-файлов. Он бесплатный, скачать его можно прямо с официального сайта. В JBZoo практически весь код открыт, за исключением мест проверки лицензии. Начиная с версии 2.0.0 для корректной работы JBZoo обязательна поддержка модуля ionCube Loader.
ionCube и хостинг

Как самостоятельно проверить наличие ionCube?
Способ #1
Информация из функции phpinfo(). Создайте PHP-файл с функцией phpinfo(), залейте на сайте и перейдите на него в браузере.
Способ #2
Запустите loader-wizard.php. Это официальный скрипт, который помогает определить текущую версию модуля, либо помочь в его установке. Если все хорошо, то вы увидите примерно следующую картину
Способ #3
Установите JBZoo 2.0 +. Если приложение запустилось, то все в порядке. В противном случае вы увидите следующее
Как самостоятельно установить модуль на свой сервер?

Cкачать предложенный ZIP-архив.
Распаковать в папку, указанную в пункте 2.
Указать путь до этого файла в файле php.ini с помощью строки следующего типа.
Внимание! Локальные сервера вроде Denwer и Open-Server зачастую имеют у себя в комплекте этот модуль. Поэтому перед установкой проверьте его присутствие.
Если после перезагрузки сервер не запускается, то скорее всего:















