Все в одном: пакеты Apache, PHP, Perl, MySQL для Windows
ОГЛАВЛЕНИЕ
Apache под Windows
Современная web-разработка во многих случаях требует использования динамических решений, написания скриптов на различных языках программирования, навыков работы с базами данных. В этом творческом процессе возникает необходимость отладки созданных программ на соответствующем тестовом сервере. Кроме самого сервера, нам еще понадобятся интерпретаторы необходимых языков программирования, а также СУБД.
Давайте посмотрим на данные netstat.ru. Если верить приводимым там сведениям, самым популярным web-сервером Рунета является Apache, в основном версий 1.3.2 и 1.3.27. этот продукт распространяется свободно, а благодаря открытому API пользуется благосклонностью разработчиков дополнительных модулей. Поддержкой и координацией развития Apache занимается группа Apache Server Foundation, а сам сервер признается одним из самых крупных достижений разработчиков свободного ПО.
Совместно с Apache, как правило, используются языки программирования РНР и Perl, хотя могут быть и другие варианты - это зависит от поставленных задач. Это также свободные продукты с большим числом поклонников, на деле показавшие свою пригодность для применения в web-проектах самого различного плана и уровня.
Что касается СУБД, то достаточно часто для решения подобных задач используют пакет MySQL. Основные его достоинства - это достаточная функциональность и быстродействие в совокупности с простотой разработки приложений с ее использованием. Существуют и намного более мощные системы, в том числе и свободные, однако MySQL непрерывно развивается и не собирается сдавать свои позиции. Если говорить про условия приобретения, то пакет MySQL бесплатен для некоммерческого применения. Данная СУБД предлагается весьма значительным числом хостеров в различных тарифных планах, в том числе и на некоторых бесплатных площадках.
Но это все касается, так сказать, server-side. Разработка же самих приложений ведется, как правило, на рабочих станциях, в качестве которых нередко выступают обычные домашние персоналки. Как быть в таком случае? Ответ давно найден - необходимо воспроизвести на своей локальной машине "серверную" среду, в которой смогут работать необходимые программы.
Пакеты Apache и MySQL, равно как и необходимые интерпретаторы языков программирования входят в большинство дистрибутивов той же ОС Linux. Здесь они работают в "родной" для себя среде и наиболее корректно. В идеале, отладкой скриптов для размещения на конкретном хостинге стоит заниматься в той же среде и с помощью версий соответствующего программного обеспечения, совпадающими с таковыми у избранного хостера. Это позволило бы свести к минимуму риск того, что наши скрипты на реальном сервере заработают не так, как мы от них ожидаем.
Поскольку, как мы уже отметили, разработка может вестись и на домашней машине, это в подавляющем большинстве случаев означает, что иметь дело надо будет с операционными системами от Microsoft. Из этого не стоит делать вывод о том, что если кому-то не хочется осваивать упомянутые выше "родные" для Apache ОС, то ему придется отказаться от идеи отладки на своем компьютере под управлением Windows нескольких собственных скриптов, или же настройки "под себя" готовой CMS. Названные пакеты могут работать на многих платформах, среди которых Unix, Linux, BSD, Solaris и даже MacOS. Для нас важен тот факт, что есть версии всех необходимых нам пакетов, совместимые с ОС Windows.
Более того, есть решение, позволяющее избежать процедуры ручной установки и настройки их по отдельности. Это так называемые "комплексы", которые включают Windows-версии Apache, MySQL и реализации некоторых популярных языков программирования. Данные компоненты заранее отконфигурированы, а ведь именно на этом этапе делается наибольшее количество ошибок людьми, не работавшими ранее с подобным программным обеспечением.
Так что если нас пока не интересуют нюансы настройки серверного ПО и не смущают теоретически возможные проблемы с последующей совместимостью, то вариант использования подобного комплекса выглядит весьма привлекательно. Предлагаемый вариант развертывания тестового Apache позволяет быстро начать продуктивную работу, не тратя драгоценное время на настройку собственно тестового web-сервера и других компонентов, и вообще абстрагироваться от задач администрирования, сосредоточившись на своих непосредственных задачах.
Подобные пакеты можно, в принципе, использовать не только по прямому назначению, то есть для тестирования собственноручно написанных скриптов для своих web-страниц, но и в роли (условно) полноценного сервера в рамках, например, локальной сети. Конечно, в таком качестве для более-менее серьезных случаев, на мой взгляд, ими лучше не пользоваться, но сама возможность при определенных условиях может представляться достаточно заманчивой.
Выделяются следующие способы построения таких комплексов: это может быть набор стандартных windows-версий необходимых пакетов с минимумом изменений, снабженных общим инсталлятором и предварительно отконфигурированными настроечными файлами или же максимально компактный вариант, сохраняющий, однако, необходимые свойства, достаточные для большинства любительских разработок. Соответственно и направления развития подобных пакетов сводятся либо к наращиванию числа включаемых компонентов и разработке дополнительных панелей управления, инсталляторов дополнений и тому подобного, либо к сохранению небольших размеров при добавлении новых версий основных компонентов пакета. Покончив с теоретической частью, перейдем к практическому знакомству с некоторыми решениями такого плана.
EasyPHP
Данный пакет имеет французские корни. Официальный сайт - http://www.easyphp.org/. Размер дистрибутива - чуть больше 11 Мб. Последняя на сегодняшний день версия - EasyPHP 1.7, которую можно скачать отсюда. Конфигурация этого пакета следующая:
- Apache 1.3.27
- PHP 4.3.3
- MySQL 4.0.15
- PhpMyAdmin 2.5.3
Как можно заметить, выбрана хорошо проверенная и широко распространенная версия Apache. Что касается остальных программ, то здесь все на высоте - нам предлагают самые свежие версии.
Инсталляция EasyPHP производится элементарно: запускаем Setup и следуем его указаниям. Инсталлятор общается с нами на французском, но понять его требования можно и не обладая глубокими познаниями в родном языке Вольтера и Жюля Верна - соглашаемся с лицензией, выбираем папку для установки, следим за копированием файлов.
Для нормального функционирования MySQL необходим настроечный файл mysql.ini. Если у нас уже установлена какая-либо версия данной СУБД, то программа-инсталлятор EasyPHP сохранит этот файл под именем типа "my_текущая_дата.ini". После первого старта EasyPHP его иконка обоснуется в системном трее. По правому клику она дает доступ к меню управления из следующих пунктов:
- Help - некоторая вводная информация про EasyPHP, и ссылки на FAQ и сайт PHP.
- Log files - просмотр лог-файлов сервера Apache (error.log и access.log), СУБД MySQL (mysql.err) и самого
- EasyPHP. Бесценный кладезь информации при отладке скриптов.
- Configuration - настройки Apache (файл httpd.conf), расширения PHP (по умолчанию отключены), конфигурация
- MySQL (файл my.ini), а также запуск встроенного PhpMyAdmin
- Web local - ссылка на стартовую страницу localhost
- EasyPHP - запуск небольшой консоли настроек самого EasyPHP. Аналогичный результат дает левый клик на значке программы в системном трее.
- Explore - открывает домашний каталог нашего Apache
- Administration - страница с некоторыми сведениями о текущих версиях и настройках компонентов системы. Удобным может показаться создание новых алиасов с помощью специальной формы.
- Local Web - открывает стартовую web-страницу домашнего каталога.
- Restart, Stop, Exit - понятно без объяснений
Давайте познакомимся с консолью EasyPHP. Здесь, кроме уже названных опций, предлагаются и некоторые дополнительные системные настройки: прямой запуск/перезапуск/остановка Apache и MySQL, а также их выполнение в режиме сервиса, загрузка EasyPHP при старте Windows, автоматическая проверка обновлений EasyPHP и автоматический же перезапуск серверов при внесении изменений в их конфигурации. Возможен выбор языка интерфейса из списка доступных.
Домашним каталогом для наших проектов является директория www. Тестовых скриптов разработчики EasyPHP нам не предлагают, поэтому для проверки работоспособности интерпретатора PHP стоит создать страничку с простейшим скриптом, например выводящем информацию о PHP с помощью phpinfo.
Кстати говоря, пакет EasyPHP поддерживает возможность апгрейда своих компонентов. Так для замены PHP необходимо остановить серверы, распаковать содержимое загруженного с php.net архива в подкаталог php установочного каталога EasyPHP, заменить имеющиеся библиотеки php4apache.dll и php4ts.dll на новые, а также заменить и проверить конфигурационный файл php.ini. Если все сделано правильно, то при следующем запуске EasyPHP мы увидим результат своих действий.
Денвер
Этот пакет разработан российскими программистами. Адрес официального сайта - web.dklab.ru. Название его расшифровывается следующим образом: "ДжЕнтльменский Набор ВЕб-Разработчика". Он отличается завидной для своих возможностей компактностью (размер дистрибутива всего около двух мегабайт) и наличием поддержки как PHP, так и Perl. Конфигурация "Денвера" текущей версии такова:
- Apache 1.3.27, SSI, mod_rewrite, mod_php
- PHP 4.3.0 с поддержкой gd и MySQL
- MySQL 3.23.53 с поддержкой транзакций (mysqld-max)
- PhpMyAdmin 2.3.0
- Ядро Perl без стандартных библиотек
Эмулятор Sendmail, поддерживающий совместную работу с PHP / Perl и складывающий письма в специальный каталог Кроме названных компонентов, "Денвер", как и положено такой системе, обладает единым инсталлятором, а также рядом оригинальных дополнений, например основанной на шаблонах системой управления виртуальными хостами Apache. Совсем не лишним представляется и переведенные на русский язык комментарии в конфигурационных файлах.
Как говориться в сопроводительной документации, "Предлагаемый комплекс программ позволяет запустить полноценный веб-сервер Apache с поддержкой PHP, Perl и сервер MySQL на машине, работающей под управлением MS Windows 95/98/Me/NT/2000/XP. Как правило, при установке не требуется никакой настройки, комплекс может использоваться даже неподготовленными пользователями. Тем не менее, он может найти применение не только для обучения азам веб-программирования, но и для отладки интерактивных сайтов, программ, использующих базу данных MySQL, написанных на языках PHP и Perl" - трудно добавить к этому что-либо от себя, разработчики выразились более чем доступно. Подробную документацию по работе с "Денвером" при желании необходимо скачивать отдельно.
Для загрузки выложены различные версии комплекса, отличающиеся другим набором компонентов. Об их составе можно судить по достаточно информативному названию самого файла. Так имя пакета "2003-02-10_Base_a1.3.27_p4.3.0_m3.23.53_pma2.3.0.exe" означает, что он был создан в феврале 2003 года и должен содержать Apache 1.3.27, PHP 4.3.0 и MySQL 3.23.53. Имеются и дополнения к "Денверу", так, например, можно скачать ActivePerl с набором библиотек, а также некоторые расширения для PHP.
Особенностью работы пакета является то, что для более полной имитации *nix-системы он, используя утилиту substr, создает в Windows-системе отдельный виртуальный диск. При этом вся реальная работа ведется с созданной ранее папкой C:WebServers (по умолчанию) или другой, избранной нами при установке. В этой папке программой создается структура каталогов, подобная такой структуре привычной для Unix, что несколько облегчает дальнейшую работу по размещению готового проекта на реальном сервере.
Существует два варианта запуска "Денвера". Первый предусматривает создание виртуального диска при загрузке Windows. Старт серверов осуществляется вручную. Этот вариант считается предпочтительным, так как дает некоторые дополнительные возможности при работе с командной строкой и установленными программами без запуска самого Apache. Второй подразумевает создание виртуального диска непосредственно при ручном запуске серверов. Теперь можно переходить к тестированию. Для этого предусмотрен целый набор скриптов, позволяющих оценить работу различных подсистем пакета.
Phpdev
Еще один комплекс, предлагающий готовое решение, адресованное разработчикам web-проектов, предназначенных для работы под Apache. Официальное представительство находится на http://www.phpdev.firepages.com.au/. Последняя версия - phpdev423. В ее состав входят:
- Apache 1.3.27
- PHP 4.2.3
- MySQL 4
- PhpMyAdmin 2.3.2
- Invision Board
- PhpWebsite
Кроме этого, можно отдельно загрузить mod_perl для Apache (1.27 + Perl 5.6.1), FTP-сервер Cerebus и PHP 4.3.0. Как можно заметить, кроме компонентов, применяемых собственно для разработки и отладки скриптов, создатели phpdev посчитали необходимым включить в пакет еще и парочку CMS, вероятно для того, чтобы клиент сразу понял, зачем ему тестовый web-сервер. Что касается процесса установки и работы с данным пакетом, то здесь нет ничего сверхъестественного и принципиально отличающегося от уже рассмотренных систем.
BigApache
Это решение претендует на роль средства практически на все случаи жизни. Даже само название пакета подчеркивает это стремление. Сайт проекта - http://www.bigapache.org/. Конфигурация пакета следующая:
- Apache 2 для Windows
- PHP 4.3.x
- MySQL 4
- mod_perl (Perl 5.8 с модулем ASP::Apache)
- SSLv2, SSLv3 TLSv1
- Поддержка Java (mod_jk/JBoss/Tomcat 4.1.x)
- Поддержка языка Python (mod_python/Python 2.x)
- Почтовый сервер Mercury
Таким образом, кроме стандартных для других комплексов Apache, PHP, MySQL и Perl, BigApache содержит еще и неплохую поддержку Java, Python и ASP, а также массу дополнений типа встроенных систем шифрования, анализатора лог-файлов и других полезных вещей, список которых весьма обширен. Для апгрейда установленных компонентов применяется так называемый Webinstaller, подгружающий самые новые версии программ и устанавливающий их в связку BigApache. Добавим, что пакет распространяется на условиях open source и предлагается как для некоммерческого, так и для коммерческого применения, а работает он под Windows NT/2000/XP.
Относиться к подобному стремлению охватить как можно больше компонентов можно по-разному. С одной стороны, это удобно: настраивать уже точно ничего не придется, а нам сразу станут доступны многие технологии разработки. Обратная сторона подобной функциональности и насыщенности дополнительными элементами легко предсказуема - размер пакета превышает 90 мегабайт. Возможен и такой подход. Если нам требуются какие либо технологии кроме классических Apache+PHP(Perl)+MySQL, то может, имеет смысл собирать свой собственный комплекс из стандартных windows-версий необходимых программ? Готового ответа здесь нет, каждый волен решать самостоятельно.
На рассмотренных выше пакетах список решений, упрощающих развертывание web-сервера Apache на Windows-машине, не заканчивается, но составить общее впечатление о возможностях таких комплексов, а то и сделать свой выбор, можно руководствуясь описанием упомянутых пакетов. Все они построены на основе свободных компонентов и, в свою очередь, распространяются бесплатно. Это типичные представители семейства. По сути, все они решают одинаковые задачи, поэтому их функциональные возможности зачастую близки. Остается только оценить собственные запросы, выбрать пакет и, засучив рукава, приниматься за работу.