Программирование HTML Нужен ли Zend Optimizer для запуска Joomla? Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Нужен ли Zend Optimizer для запуска Joomla? Печать
Добавил(а) microsin   

Zend-Technologies-logoЧасто при переходе на новый хостинг или при апгрейде операционной системы сервера пользователи Joomla задают вопросы типа "Используют ли мои сайты Zend Optimizer? Нужен ли Zend Optimizer, чтобы заработал сайт на Joomla?". В этом случае важно понять, что подразумевается под "Zend Optimizer", потому что у компании Zend Technologies много продуктов, и все они имеют разное назначение (здесь приведен перевод статьи [1]).

Часто Zend Optimizer путают с Zend Guard, который является специальной утилитой, позволяющей компаниям-разработчикам программного обеспечения продавать свои скрипты PHP, не открывая их исходный код. Возможно, все это звучит несколько неопределенно, поэтому давайте разберемся, как работают технологии Zend.

Zend Optimizer: это бесплатно устанавливаемое на WEB-сервер приложение, которое позволяет на лету декодировать скрипты, зашифрованные другой программой - Zend Guard. Включить или выключить Zend Optimizer можно редактированием настроек файла php.ini. Несмотря на громкое название, этот "оптимизер" ничего не оптимизирует, а только декодирует зашифрованные скрипты PHP.

Zend Guard: это совершенно другая программа (платная), которая позволяет разработчикам PHP шифровать свои скрипты (для расшифровки как раз и нужен Zend Optimizer). Шифрование защищает интеллектуальную собственность от реверс-инжиниринга и неавторизованного использования. На работающем WEB-сервере с Joomla не нужен Zend Guard, поскольку он требуется только разработчикам PHP, которые по разным причинам хотят защитить свои продукты.

Подробнее про продукты компании Zend Technologies можно почитать в Википедии [2].

Обычно когда Вы устанавливаете стандартное расширение (например, расширение, которое для запуска не требует каких-то дополнительных утилит), файлы расширения просто будут распакованы в соответствующие места (каталоги сервера Joomla, которые указаны в XML-файле манифеста установочного пакета расширения), таблицы #__assets и #__extensions в базе данных будут обновлены, и после этого расширение обычно сразу готово к работе. Любой запрос для использования этого расширения со стороны посетителя сайта будет выполняться следующим образом:

• Браузер посылает запрос к WEB-серверу.
• Apache проверяет запрос и отмечает, что запрос состоит из обработки файлов PHP. Таким образом, запрос (и вся информация, связанная с ним) передается парсеру PHP.
• Парсер PHP читает нужные файлы PHP (например, файлы ядра Joomla, и файлы, связанные с Вашим расширением), и проверяет эти файлы на отсутствие ошибок.
• Парсер PHP интерпретирует файлы и генерирует выходные данные (делает рендеринг отображаемой веб-страницы).
• PHP передает выходные данные к Apache.
• Apache отправляет данные браузеру пользователя, который ранее отправил запрос.
• Браузер отображает выходные данные (запрошенную веб-страницу).

Все вышеперечисленное происходит, когда запускаются обычные расширения, они не требуют никаких внешних дополнений и утилит для своего запуска. Теперь давайте посмотрим, что произойдет с тем расширением, которое Вы купили (если оно требует для запуска Zend Optimizer):

• Браузер посылает запрос к WEB-серверу.
• Apache проверяет запрос и отмечает, что запрос состоит из обработки файлов PHP, которые были закодированы Zend Guard (обратите внимание: закодированные файлы PHP не могут быть напрямую обработаны парсером PHP).
• Zend Optimizer расшифровывает файлы, где находятся закодированные скрипты PHP, и передает запрос подсистеме PHP.
• PHP теперь может прочитать декодированные файлы. Они проверяются на ошибки, интерпретируются, и сгенерированные данные передаются серверу Apache.
• Apache отправляет данные браузеру пользователя, который ранее отправил запрос.
• Браузер отображает выходные данные (запрошенную веб-страницу).

Если Вы думаете, что последний метод создает излишнюю нагрузку для сервера, то будете правы. Если у Вас очень большой сайт, то избегайте устанавливать закодированные расширения, потому что они создадут большую (и ненужную) нагрузку на сервер, когда происходит декодирование Zend Optimizer (или любым другим подобным кодировщиком/декодером PHP).

[FAQ]

Да, Zen Guard не единственный, есть и другие. Широко известен также ionCube PHP Encoder. У Zen Guard и ionCube PHP Encoder примерно одна и та же производительность.

Такого хостера найти очень просто, потому что почти все провайдеры хостинга имеют Zend Guard (по неким таинственным причинам многие компании называют Zend Guard как Zend Optimizer) и ionCube PHP Encoder, установленные на свои сервера VPS, и приписанные к тарифным планам выделенных серверов.

Нет, обычно оплата входит в цену тарифного плана хостинга. Мы не видели ни одной компании - провайдера хостинга, которая брала бы дополнительную плату за кодировщики PHP.

Нет, все что происходит на Вашем сервере, остается на Вашем сервере. Zend Guard и ionCube PHP Encoder не отсылают к себе никакой информации, так что Вы можете использовать их без проблем. Однако это вовсе не гарантирует, что закодированный скрипт не будет посылать какую-то информацию. Самый лучший способ убедится в этом - мониторить трафик Вашего сервера для любых странных соединений, когда Вы используете свое (закодированное) приложение.

Конечно, недостатки есть. Основной недостаток уже упоминался - чрезмерная нагрузка на сервер. Второй недостаток в том, что закодированные приложения PHP являются черным ящиком. Если они есть, то это может означать что угодно - например, в приложении используется плохой стиль программирования (в просторечии "говнокод"), или разработчик не хочет, чтобы Вы знали, какие на самом деле функции выполняет приложение. Кроме того, таки приложения почти невозможно расширить или перенастроить - кроме тех возможностей, которые изначально предоставлены разработчиком.

Joomla никак не связана напрямую с закодированными скриптами PHP. Весь код, с которым имеет дело Joomla, должен быть декодирован изначально (файлы должны быть либо не закодированы, либо расшифрованы декодером PHP) перед каким-то взаимодействием с системой Joomla. Поэтому с совместимостью Joomla никаких проблем нет.

Однако есть другой вид несовместимости, связанный не с Joomla, а с версией PHP. Например, на многих серверах, где установлен PHP 5.3, отключена поддержка Zend Optimizer. Поэтому если у Вас на сайте используется расширения, требующие Zend Optimizer, то тщательно выясняйте, какая версия PHP установлена на хостинге - нужна версия PHP 5.2 и ниже.

Пока мы не дали технический ответ на вопрос в заголовке (несмотря на то, что ответ очевиден). Итак, давайте ответим прямо сейчас: Joomla во всех популярных не сегодняшний день версиях (1.5, 2.5 или 3.x) не требует для своей корректной работы ничего другого, кроме рабочего окружения из базового пакета LAMP (Linux, Apache, MySQL и PHP). Подробнее про идеальные условия функционирования Joomla см. [3]. Если коротко, базовая инсталляция Joomla без наличия на ней сторонних расширений может отлично работать без Zend Optimizer. Если сайт Joomla имеет расширения, которые требуют Zend Optimizer, но это потребует для всего сайта, чтобы на том сервере, где работает Joomla, был установлен Zend Optimizer.

Способ 1. Поскольку Zend Optimizer тесно связан с подсистемой (парсером) языка PHP, то для получении информации о продуктах Zend на сервере выполните команду phpinfo из скрипта PHP:

< ?php
phpinfo();
?>

В результате выведется подробная информация по настройкам PHP и установленным компонентам. Части, связанные с Zend Optimizer, будут выглядеть примерно так:

This program makes use of the Zend Scripting Language Engine:Zend Engine vX.Y.Z,
Copyright (c) 1998-2007 Zend Technologies.
with Zend Optimizer vX.Y.Z, Copyright (c) 1998-2007, by Zend Technologies

Может также красоваться такой логотип:

ZendEngine2-logo

Способ 2. Командой php -v можно узнать версию установленной подсистемы PHP, и работает ли совместно с PHP подсистема Zend:

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

[Ссылки]

1. Does Joomla Require Zend Optimizer to Run? site:itoctopus.com.
2. Zend Technologies site:ru.wikipedia.org.
3. What Is Joomla’s Ideal Hosting Environment? site:itoctopus.com.

 

Добавить комментарий


Защитный код
Обновить

Top of Page