Пакет для отладки веб-сайтов «Денвер»

Автор: Денис Ковалкин

(написано для Hostinfo.Ru, ссылка на публикацию здесь)

Проблема тестирования и отладки веб-приложений знакома любому программисту. И если доработка простых скриптов возможна непосредственно на хостинге, то отлаживать сколь-нибудь сложный код целесообразнее на собственном рабочем компьютере. Что для этого необходимо? Установить веб-сервер, обычно Apache, модуль для используемого языка веб-программирования, модуль базы данных и другие расширения по вкусу. Решение этой задачи в лоб — с поиском необходимых дистрибутивов, установкой и настройкой их по отдельности — занимает немало времени и требует базовых познаний в области настройки веб-серверов. Имеющиеся в Сети объемистые инструкции по установке требуемых для отладки программ, со ссылками на заранее подобранные дистрибутивы, ускоряют процесс, но не намного.

Что нужно веб-программисту в идеале? Самоустанавливающийся, самонастраивающийся отладочный пакет, содержащий в базовой конфигурации самые  необходимые для работы элементы (Apache + PHP + MySQL), имеющий широкий набор модулей расширения, легко переносимый с одного компьютера на другой. Этот спрос закономерно породил соответствующее предложение: отладочные пакеты серии «всё-в-одном», такие как зарубежные PHPdev (http://www.firepages.com.au/) и EasyPHP (http://www.easyphp.org/), или отечественные TopServer (http://www.topserver.ru/) и «Денвер» (http://www.denwer.ru/). О последнем из них — пакете «Денвер» — пойдет речь в этой статье.

Характеристики «Денвера»

Название пакета «Денвер» происходит от выражения «джентльменский набор веб-разработчика». Пакет представляет собой ряд программ, связанных общей программной оболочкой, необходимых для запуска на рабочем компьютере веб-приложений. Разработчик пакета — Дмитрий Котеров (http://www.dklab.ru). В установочной конфигурации «Денвер» содержит (по состоянию на 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\) строчку

ВАШ.IP.АДРЕС   имя.сайта

Например: 192.168.0.5  corporate.ru