[обзор продукта компании Zend Technologies для создания веб-сервера с поддержкой РНР]материал подготовил: Александр Лозовюк 29.07.2004
На какой платформе работает большинство веб-серверов на хостинговых площадках? В качестве операционной системы (ОС) используют Linux (например RedHat Linux) или ОС из семейства BSD (наиболее популярна FreeBSD, но специально для сетевого применения разработана другая — NetBSD), веб-сервером традиционно служит Apache (версии 1.3, 2.0 все же больше ориентирован на Windows-машины). В качестве базы данных используется MySQL или PostgreSQL. Ну и наконец, для разработки динамических страниц применяют языки PHP, Perl или Phyton.
Но вам надо (или просто нравится) разрабатывать свои сайты на компьютере под управлением Windows, а потом уже переносить готовый сайт на рабочий сервер. Для этого вам надо максимально близко воспроизвести окружение, в котором будет работать ваш сайт. А значит — надо установить у себя на компьютере веб-сервер, сервер баз данных и реализацию одного из языков, на котором вы разрабатываете скрипты. И тут многие испытывают трудности. Не секрет, что все нужные программы (Apache, MySQL, PHP) «пришли» на Windows-платформу из мира Unix, и поэтому их сложно настраивать — нет графического инсталлятора, управлять настройками надо посредством ручного редактирования файлов настройки, для работы одной программы надо настраивать все остальные и т.п. Особенно много настроек в Apache и PHP. Поэтому настройка всех этих программ для корректной и слаженной совместной работы дело отнюдь не тривиальное.
Поскольку потребность в удобных инструментах для организации полноценного веб-сервера (здесь и далее — «веб-сервер» включает как минимум связку Apache+PHP) растет, многие компании и отдельные разработчики принялись создавать утилиты для облегчения работы с сервером. Сначала это были маленькие утилиты, предназначенные для выполнения отдельных действий, например запуска/остановка/рестарта веб-сервера. Потом начали появляться целые комплексы, которые в одном инсталляционном пакете содержали все необходимые программы, документацию и даже настроенные «движки» форумов, порталов и другие необходимые скрипты. Для начала работы надо было только указать установочной программе пути к директориям и имя сервера — все, после инсталляции сервер полностью готов к работе.
Пакеты для разработчика могут содержать все необходимое для начала работы
К наиболее известным таким комплексам для разработчика следует отнести «Денвер» — Джентльменский набор веб-разработчика (http://web.dklab.ru) и php-dev (http://www.firepages.com.au/). Оба набора предоставляют схожие возможности и содержат веб-сервер Apache 1.3 (в php-dev5 есть два сервера 1.3 и 2.0), сервер баз данных MySQL 3.23 и PHP 4.1, Perl, а также утилиты администрирования — phpMyADmin и другие. «Денвер» имеет очень удобные средства для создания множества сайтов — для этого не требуется вообще ничего править, а только создать структуру каталогов для нового сайта, при следующей загрузке сервер сам добавит новый сайт и он начнет работать. Еще одним плюсом нашей разработке является ее маленький объем — базовый набор, который включает все необходимое, умещается в 2,5 Мб, тем временем как php-dev занимает почти 10 Мб. Особенно ценен в «Денвере» перевод конфигурационных файлов Apache (http.conf) и PHP (php.ini) — теперь в них намного легче разобраться.
Но эти разработки созданы отдельными энтузиастами. Существуют и корпоративные разработки, как правило, коммерческие. Наверное, вы знаете компанию Zend Technologies. Ядро Zend II используется в языке РНР, а ее продукты известны профессиональным разработчикам (к примеру, очень интересная система разработки и отладки РНР-скриптов Zend Studio). Недавно компания выпустила комплекс WinEnabler 1.1, который предназначен для быстрого со
здания на компьютере под управлением Windows полноценной платформы для веб-разработки (на РНР, конечно).
Один из самых лучших пакетов для создания веб-сервера — «Денвер»
Zend WinEnabler включает в себя собственную версию РНР (4.3.7), модули для веб-сервера Apache 1.3 и 2.0, также существует версия для веб-сервера IIS, это отлично подойдет для серверов на платформе Windows 2003/IIS 6.0, а также акселератор (Code Acceleration) для ускорения выполнения скриптов (полная версия пакета Zend Optimizer продается отдельно), а также модуль Zend Performance Suite, который также поставляется в виде отдельного комплекса и отвечает за комплексное применение всех доступных средств для оптимизации и повышения производительности сервера.
По сравнению с пакетами «Денвер» и php-dev, система Zend WinEnabler. с одной стороны, проигрывает, и ощутимо, так как не содержит ни собственного веб-сервера, ни сервера баз данных (для установки пакета нужен, как минимум, работающий веб-сервер, наличие PHP не обязательно). Да и цена (около $200) тоже может заставить поискать другие решения. Но взамен пакет предоставляет достаточные возможности по разработке скриптов, тем более, что он включает, пусть и в минимальном виде, другие программные продукты для оптимизации, которые по отдельности хоть и дают больше возможностей, но и стоят заметно дороже.
В установке и управлении Zend WinEnabler очень прост — стандартный инсталлятор все сделает сам, только надо остановить веб-сервер на период установки. Поскольку при установке вносятся изменения в конфигурационные файлы, программа сделает их резервные копии, а сами установки просто дописываются в конец файла, так что обнаружить их будет легко.
Для управления доступна очень простая веб-панель (http://<ваш-сервер>/ZendWinEnabler/), через которую вы можете задать основные настройки, в частности, объем память для кеширования, включать/отключать ускорение и следить за текущим потреблением памяти и количеством обработанных скриптов. Более тонкие настройки все же придется делать через ручную правку файла php.ini (блок настроек WinEnabler-а в самом конце файла). Но если вы можете это сделать — тогда пакет явно не для вас. Он предназначен больше для быстрой организации веб-сервера для разработки или тестирования в локальной сети или машине разработчика, можно также создать внутренний сервер небольшого предприятия.
WinEnabler предоставляет среду для выполнения и оптимизации работы РНР-скриптов
Пару слов об оптимизации. Стратегия модуля оптимизации из пакета WinEnabler (по сути, урезанной версии Performance Suite) подразумевает применения сразу нескольких путей для повышения производительности. кэширование файлов позволяет исключить или свести к минимуму операции чтения с жесткого диска, кроме того, кэшируется и байт-код (РНР язык интерпретируемый, в процессе работы ядро РНР превращает исходный код скрипта в промежуточный байт-код, который затем выполняется. кэширование байт-кода позволяет пропустить стадию разбора скрипта и ускоряет работу.). Вместо CGI применяется механизм FastCGI, что позволяет не запускать каждый раз новую копию интерпретатора РНР, а использовать один рабочий процесс в памяти. Таким образом сокращаются накладные расходы на запуск каждого дополнительного скрипта и появляется возможность оптимальнее использовать память сервера, обслуживая одновременно большее число запросив к серверу. По умолчанию WinEnabler использует постоянный пул из 10 процессов, которые всегда присутствуют в памяти и обслуживают запросы, которые динамически распределяются между свободными процессами.
Продукт в компании Zend получился довольно интересный и мощный. В отличии от других решений типа «полноценный сервер за пару кликов», WinEnabler не предоставляет дополнительных возможностей, он ориентирован скорее на предоставление полноценной поддержки PHP и оптимизацию производительности веб-приложений. Вот с этим он действите
льно справляется на все 100%. Но для работы надо самому инсталлировать и настраивать веб-сервер — Apache или IIS, а также организовывать взаимодействие с базой данных. Zend WinEnabler платный, $ 199, но можно свободно скачать пробную версию и получить лицензию для тестирования. Стоит ли его использовать — решать вам: