Отладка web-сайтов (Apache + Windows'XP SP2)

17 ноября 2004 г.
Новиков М.Г.

Для отладки сайтов в домашних условиях чаще всего используют http-сервер Apache. С помощью него создаются виртуальные серверы для каждого отлаживаемого сайта, благодаря чему последние выполняются в той-же среде, в которой будут выполняться у хостера. С помощью виртуальных серверов удобно отлаживать сайты на cgi-скриптах, и т.п.

На момент написания этой статьи последней версией этого сервера была Apache 2.0.52.
Сервер Apache можно бесплатно скачать с его домашнего сайта http://httpd.apache.org.

Оглавление:

Глава 1.Решение проблемы виртуальных серверов Apache под Windows XP SP2
Глава 2.Установка Apache 2.0.52 для отладки сайтов под Windows XP SP2

Глава 1. Решение проблемы виртуальных серверов Apache под Windows XP SP2

После апгрейда операционной системы до Windows XP SP2, перестают работать созданные в файле конфигурации Apache виртуальные серверы. Это происходит из-за ошибки в файле tcpip.sys. Существует официальный патч от Майкрософт под номером KB884020, который можно скачать тут:

http://download.microsoft.com/download/1/6/b/16b8c8fd-45f7-415c-a528-ce65f8e6e460/WindowsXP-
KB884020-x86-rus.exe

Но, к сожалению, патч этот ставится только на лицензионные копии Windows XP. У меня, например, он в процессе инсталляции зависал и завешивал машину. Установка на неактивированную Windows XP приводила к тем же результатам. (Недавно мне сказали, что патч надо было ставить в безопасном режиме, тогда он поставится. К сожалению я уже не помню, в каком режиме я его пытался поставить.)

Однако вышеописанную ошибку tcpip.sys можно обойти. Ошибка такова, что перестают работать все IP-адреса обратной петли кроме адреса 127.0.0.1. По соглашению об IP-адресах, когда данные посылаются по адресу с первым байтом равным 127, например, 127.0.0.3, то образуется как бы «петля». Данные не передаются по сети, а возвращаются модулям верхнего уровня протокола TCP/IP как только что принятые, что и нужно при локальной отладке сайтов. Таким образом, мы можем получить доступ к своему сайту только через единственно рабочий IP 127.0.0.1.

Для этого изменим 2 файла:

1. В конфигурационном файле Apache «htpd.conf» (лежит в подкаталоге «conf») раскомментируем параметр NameVirtualHost *:80 и вместо IP-адресов в описании виртуальных серверов поставим звездочку — *, например:

<VirtualHost *>
DocumentRoot "C:/usr/home/samovar_new"
ServerName max
</VirtualHost>

2. В файле C:/WINDOWS/system32/drivers/etc/hosts все перечисленные там IP-адреса изменим на 127.0.0.1:

127.0.0.1 localhost
127.0.0.1 max

Перезапускаем Apache — и все начинает работать, как прежде.

[Вернуться в начало]

Глава 2. Установка Apache 2.0.52 для отладки сайтов под Windows XP SP2

После запуска инсталляции в поле «Network Domain» вводим localhost, в поле «Server Name» вводим localhost, а в поле «Administrator's EMail Address» вводим ваш E-Mail. Опцию в нижней части окна оставляем по умолчанию — пусть сервер запускается как служба при загрузке системы, и работает для всех пользователей компьютера.

После этого устанавливаем Apache в папку по умолчанию в типичной конфигурации. После инсталляции сервис http-сервера Apaxhe запускается автоматически, а на пенели справа появляется его значок.

Теперь исправим файл конфигурации. Через Пуск -> Программы -> Apache HTTP Server 2.0.52 -> Configure Apache Server -> Edit the Apache htpd.conf Configuration File открываем текстовый файл и правим следующие параметры:

DirectoryIndex — добавляем index.htm (имя запускного файла).
AddDefaultCharset — комментируем (кодировку будем брать из соответствующего тега web-страницы <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">).
ScriptAlias — комментируем, чтоб не мешался, псевдонимы каталогов скриптов нам не нужны.
Alias — комментируем, чтоб не мешался, псевдонимы каталогов нам не нужны.
NameVirtualHost — раскомментируем (будем вызывать виртуальные серверы по имени а не по IP-адресам).

В 3 секцию добавляем виртуальные серверы, столько, сколько нужно:

<VirtualHost *:80>
DocumentRoot "C:/usr/home/samovar_new"
ServerName max
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "C:/usr/home/a35km"
ServerName dacha
</VirtualHost>

<VirtualHost *:80>
</VirtualHost>

(Последний виртуальный сервер берет все параметры из основной секции файла, и запускается по вызову localhost).

После этих манипуляций сохраняем файл, щелкаем на значке сервиса в панели и нажимаем Apache2 -> Restart. Сервер перезапустится с новыми настройками. Сервер установлен.

Теперь открываем файл WINDOWS/system32/drivers/etc/hosts и пишем туда имена наших виртуальных серверов:

127.0.0.1 localhost
127.0.0.1 max
127.0.0.1 dacha

После его сохранения новые настройки сразу вступают в силу, и вы сможете вызывать ваши сайты по именам их виртуальных серверов. Если ваши сайты используют cgi-скрипты, то потребуются дополнительные изменения в файле htpd.conf, независящие, однако, от наличия в системе обновления SP2. Статей по настройке Apache для работы с PHP, Perl и MySQL и т.п. достаточно много в Интернете, например, здесь: http://www.zeiss.net.ru/docs/design/index.htm.

Существует также т.н. «Джентельменский набор Web-разработчика» («Д.н.w.р», читается «Денвер» — почти как название города) — набор дистрибутивов, используемый Web-разработчиками (программистами и дизайнерами) для отладки сайтов на «домашней» (локальной) Windows-машине без необходимости выхода в Интернет. Качайте его с http://www.denwer.ru/. Там же описание по его установке.

[Вернуться в начало]
[Оставить отзыв в гостевой]
Hosted by uCoz