Пакет для отладки веб-сайтов «Денвер»
Характеристики пакета для запуска веб-приложений на локальной машине
Проблема тестирования и отладки веб-приложений знакома любому программисту. И если доработка простых скриптов возможна непосредственно на хостинге, то отлаживать сколь-нибудь сложный код целесообразнее на собственном рабочем компьютере. Что для этого необходимо? Установить веб-сервер, обычно Apache, модуль для используемого языка веб-программирования, модуль базы данных и другие расширения по вкусу. Решение этой задачи в лоб — с поиском необходимых дистрибутивов, установкой и настройкой их по отдельности — занимает немало времени и требует базовых познаний в области настройки веб-серверов. Имеющиеся в Сети объемистые инструкции по установке требуемых для отладки программ, со ссылками на заранее подобранные дистрибутивы, ускоряют процесс, но не намного.
Что нужно веб-программисту в идеале? Самоустанавливающийся, самонастраивающийся отладочный пакет, содержащий в базовой конфигурации самые необходимые для работы элементы (Apache + PHP + MySQL), имеющий широкий набор модулей расширения, легко переносимый с одного компьютера на другой. Этот спрос закономерно породил соответствующее предложение: отладочные пакеты серии "всё в одном", такие как зарубежные PHPdev и EasyPHP, или отечественные TopServer и «Денвер». О последнем из них — пакете "Денвер" — пойдет речь в этой статье.
Характеристики Денвера
Название пакета "Денвер" происходит от выражения "джентльменский набор веб-разработчика". Пакет представляет собой ряд программ, связанных общей программной оболочкой, необходимых для запуска на рабочем компьютере веб-приложений. Разработчик пакета — Дмитрий Котеров. В установочной конфигурации "Денвер" содержит (по состоянию на 29.03.2008): веб-сервер Apache 2.2.4 + SSL; модуль PHP 5 версии 5.2.4 с поддержкой GD, MySQL, SQLite; СУБД MySQL 5 версии 5.0.45 с поддержкой транзакций; phpMyAdmin 2.6.1. Дистрибутив базового пакета невелик, занимает всего 5,5 мегабайт и доступен на официальной странице проекта. Модульная структура "Денвера" позволяет добавлять к основе, по мере необходимости, пакеты расширений, среди которых: СУБД PostgreSQL, поддержка языков Perl и Python, Parser и ряд других пакетов. Необходимо отметить, что и базовый пакет, и пакеты расширений распространяются на текущий момент бесплатно, без ограничения срока использования.
К удобным особенностям "Денвера" можно отнести простоту работы с несколькими проектами одновременно. Чтобы добавить новый виртуальный хост к списку уже существующих, достаточно создать в директории home каталога, в котором установлен этот отладочный пакет, новую поддиректорию. Ее имя станет именем хоста, а страницы и скрипты веб-сайта будут размещаться в ее поддиректории www. Никаких дополнительных настроек обычно не требуется, достаточно просто перезапустить "Денвер", если он уже был запущен. Отладочный пакет просканирует существующие в home директории и добавит их в список локальных хостов. Еще одна полезная особенность — эмулятор sendmail, складирующий отправляемые в ходе отладки локальных сайтов электронные письма в директорию tmp "Денвера". Мелочь, казалось бы, но мелочь, способная сэкономить немало времени при разработке.
"Денвер" компактен. Он устанавливается в одну единственную директорию, не разбрасывает своих файлов по служебным папкам Windows, не вносит изменений в конфигурацию операционной системы (точнее, вносит при запуске, и аккуратно подчищает при остановке). Это облегчает деинсталляцию пакета, сводя её к простому удалению папки с программой, а также ярлыков с Рабочего стола. Аналогичным образом упрощается копирование пакета. В последнем случае, кроме переноса папки с установленным в нее "Денвером", необходимо будет настроить на новом компьютере виртуальный диск, связанный с этой папкой. Делается это с помощью команды:
SUBST Буква_виртуального_диска: Путь\к\папке\с\Денвером.
В качестве буквы для обозначения виртуального диска надо использовать букву, выбранную при первоначальной установке пакета (по умолчанию Z:). Если этот виртуальный диск уже используется другой программой, можно взять другую букву, исправив в файле \denwer\CONFIGURATION.txt параметр subst_drive. Любопытная деталь — если изменить этот параметр, убрав букву вообще, то "Денвер" будет работать и без создания виртуального диска. Но авторы пакета всё же рекомендуют последний использовать. Подводим итоги: пакет "Денвер" представляет собой если и не идеальное, то достаточно близкое к подобному решение для запуска и отладки веб-приложений на локальном компьютере.
Установка Денвера
Дистрибутив пакета можно взять на официальном сайте проекта. Имя файла дистрибутива отображает дату создания, а также включаемые версии всех используемых программ (Apache, PHP, MySQL и phpMyAdmin). Программа-установщик заслуживает особого упоминания. Она последовательно проходит по всем этапам, подробно отображая результаты проверок системы, комментируя текущие действия и снабжая пользователя полезной информацией, необходимой для выбора того или иного параметра установки (и логи, и комментарии приводятся целиком на русском языке). Не так часто встречаются инсталляторы, с которыми действительно комфортно работать.
Сама установка занимает буквально пару минут. Перед началом работы установщик проверяет наличие необходимых для работы драйверов. Результаты проверки пунктуально выводятся на экран — об отсутствии какого-либо необходимого элемента вас немедленно оповестят. Затем установщик просит ввести имя директории, в которую будет скопирован пакет. Если пакет устанавливается на жесткий диск, программа попросит вас также выбрать букву для виртуального диска, связанного с папкой отладочного пакета. После этого следует процесс копирования файлов. По окончании вас спросят, хотите ли вы подключать виртуальный диск при запуске Windows, или же непосредственно при старте "Денвера", и надо ли установить ярлыки для запуска пакета на рабочий стол. После ответов установка завешается, и можно приступать к работе. Протестировать пакет можно, запустив его, и набрав в браузере адрес http://localhost/.
Если вы планируете установить "Денвер" на флэш-диск – при запросе установочной директории просто укажите букву диска. В этом случае "Денвер" изначально не будет привязываться к определенному виртуальному диску, и его можно будет использовать без дополнительных процедур, просто вставляя флэшку в любой компьютер. Файлы пакета будут находиться в четырех поддиректориях в корневой директории флэш-диска: tmp\, home\, usr\ и etc\; наличие других файлов и папок на диске установке и работе пакета не мешает. Значения ярлычков «Start Denwer» и «Stop Denwer», создаваемых на рабочем столе, понятны без пояснений, «Restart Denwer» рекомендуется использовать, если вы создали новую поддиректорию, содержащую сайт, в поддиректории home\ пакета, или изменили настройки в его файлах конфигурации.
Так же просто происходит и установка пакетов расширения "Денвера". Максимум, что может при этом потребоваться – одна-две ручных правки конфигурации, описания которых приведены на официальном сайте отладочного пакета.
Денвер как веб-сервер
Изначально сайты, работающие под "Денвером", доступны только на данном конкретном компьютере. Их IP по умолчанию — 127.0.0.1, что означает текущую локальную машину. Разработчики пакета особо подчеркивают, что "Денвер" предназначен для создания и отладки, а не для хостинга веб-сайтов. Тем не менее, есть способы открыть доступ к своим сайтам из локальной сети, или сети Интернет. Самый простой из них — разместить сайт в поддиректории "Денвера" вида \home\ваш.IP.адрес\www\ (например — \home\192.168.0.56\www\). После перезапуска пакета сайт станет доступен извне. Если переименовывать папку с файлами уже существующего виртуального хоста не хочется, можно назначить ей IP-адрес. Для этого достаточно разместить в каталоге \home\мой_сайт\ файл .htaccess с директивой вида:
#dnwr_ip ХХХ.ХХХ.ХХХ.ХХХ
Здесь ХХХ.ХХХ.ХХХ.ХХХ — ваш IP-адрес. После этого необходимо просто перезапустить пакет. Возможно, потребуется настроить брандмауэр установленной у вас Windows, разрешив подключения извне к 80-му порту. В Windows XP это можно сделать в пункте "Брандмауэр Windows" "Панели управления", на вкладке "Исключения", нажав кнопку "Добавить порт" и вписав в поле "Имя" собственный ip-адрес, а в поле "Порт" указав 80.
Разработчик пакета специально предупреждает — "Денвер" не является безопасным и надежно защищенным веб-сервером, он создавался как удобный инструмент для отладки веб-приложений на локальной машине. В связи с этим любой неотлаженный скрипт может открыть доступ к вашему компьютеру злоумышленнику, или любителю сомнительных шуток. Тем более, что пакет обычно запускается в системе с правами Администратора.
Учитывая это — вряд ли стоит использовать "Денвер" в качестве полноценного веб-сервера, но для организации корпоративного сайта, доступного по локальной сети, он может оказаться простым и удобным решением. Важная деталь — чтобы другие машины локальной сети смогли найти размещенный на вашем компьютере сайт по его имени, добавьте в их файлы hosts (WINDOWS\system32\drivers\etc\) строчку:
Например: 192.168.0.5 corporate.ru