Домашний Web - сервер


Прислал: NAS [ 18.01.2001 @ 08:33 ]
Раздел:: [ Веб-технологии ]


Домашний Web - сервер

Часто возникает ситуация, когда необходимо проверить полный вид html-страницы. Однако чаще всего это невозможно при работе в домашних условиях. Технологии SSI, CGI и, конечно, PHP, требуют наличия сервера. Согласитесь, тестировать свой сайт в он - лайне на сервере не очень удобно. Как же быть? Оказывается все очень просто: достаточно просто внимательно прочитать эту статью, и скачать некоторый софт.

Вам необходимо будет просто установить на Ваш домашний компьютер (пусть даже и не подключенный к Интернет) специальную программу - Web-сервер. Для обзора будет использоваться web - сервер Apache. Последняя версия этого сервера - 1.3.12. Самое главное то, что это чуть ли не единственный сервер, который позволяет работать в Windows 95/98 с технологиями PHP, CGI и Perl-скриптами одновременно так же просто и непринужденно, как будто у Вас стоит операционная система Unix.

Сразу хочу выразить благодарность Дмитрию Котерову (dklab@dizain.ru( mailto:dklab@dizain.ru ), //www.dizain.ru/dklab ( http://webscript.ru///www.dizain.ru/dklab/ )) за помощь, при написании статьи.

Установка Apache.
Итак, Вы решились установить на свой компьютер Apache для Windows 95/98. В таком случае Вам следует запастись терпением и для начала скачать дистрибутив сервера. Его размер составляет 3,02 Мб. Далее необходимо строго выполнять все перечисленные операции, не пропуская и не откладывая ничего. Только в таком случае у Вас заработает сервер.

Первый этап - установка.
Для начала Вам необходимо определиться с директорией, в которую Вы будите устанавливать Apache. У меня Apache установлен в директорию: d :usrlocalapache, поэтому все дальнейшие рассуждения основаны на том, что Вы выбрали для этой цели именно такой каталог: Если диска D: у Вас нет, или если Вы не хотите его использовать, то можете поставить сервер на любой другой диск. Но тогда Вам придется немного тяжелее при выполнении всех остальных действий. Нужно будет все указываемые пути заменять на Ваши собственные, а это крайне неприятно. Рекомендую все же разместить Apache в указанном в начале каталоге (usrlocalapache ), так как он максимально соответствует каталогу для реального Web-сервера Интернета. Ведь чем ближе в плане конфигурации мы будем к такому серверу, тем лучше и эффективнее сможем работать.

Запустите только что скачанный файл. В появившемся диалоге нажмите кнопку Yes , а затем - кнопку Next. Теперь нажмите Browse. Вручную задайте директорию для установки: d:usrlocalapache и нажмите кнопку OK . Выберите тип установки - Сustom и уберите флажок Source Code (если, конечно, не хотите посмотреть исходные тексты Apache). Этим Вы сэкономите себе 3 Мбайта. Нажмите Next и подождите, пока будут копироваться файлы Apache. На запрос о перезагрузке компьютера ответьте "Перезагрузить". Все, теперь Apache установлен! Теперь самое неприятное - его настройка.

Второй этап - настройка файла конфигурации Apache mime.types.

  • Откройте директорию d:usrlocalapacheconf. Откройте находящийся там файл mime.types. Найдите в нем такую строчку:
text/html html htm

Измените ее на

text/html html htm shtml shtm sht

Третий этап - настройка файла http2d.conf

Внимание! Это - самый ответственный момент установки. Прошу очень серьезно соблюдать инструкции.

Откройте директорию d:usrlocalapacheconf . Откройте с помощью программы "Блокнот" находящийся там файл http2d.conf . Это - единственный файл, который Вам осталось настроить. Вам предстоит найти и изменить в нем некоторые строки, а именно те, о которых упоминается далее. Во избежание недоразумений не трогайте все остальное. Следует заметить, что в нем каждый параметр сопровождается несколькими строками комментариев, разобраться в которых с первого раза довольно тяжело. Поэтому не обращайте особо на них внимание.

  • В поле ServerAdmin укажите Ваш E-mail адрес, который будет показываться в сообщениях об ошибке сервера. Например:
ServerAdmin my@email.com
  • В поле ServerName напишите любое слово - на работе это не сказывается, например: ServerName MyServer.

Только не забудьте раскомментировать поле ServerName , то есть убрать символ "#" перед этим параметром (по умолчанию он закомментирован)!

  • В поле DocumentRoot укажите ту директорию, в которой будут храниться Ваши html файлы, например: DocumentRoot d:/document.

Разумеется, можете указать и любую другую директорию, если хотите. В любом случае, не забудьте ее создать!

Найдите блок, начинающийся строкой <Directory /> и заканчивающийся </Directory> (вообще, такие блоки обозначают установки для заданной директории и всех ее поддиректорий). Его нужно изменить на:

<Directory/>
  Options Indexes Includes
  AllowOverride All
</Directory>

Таким образом, в этом блоке будут храниться установки для всех директорий по умолчанию (т.к. это - корневая директория).

  • Найдите аналогичный блок, начинающийся <Directory "d:/usr/local/apache/htdocs"> и заканчивающийся </Directory> . Там будет много комментариев, не обращайте на них внимание. Этот блок следует заменить на:
<Directory "d:/document">
  Options Indexes Includes
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>

Это - установки для директории с Вашими html-документами. Если хотите, можете установить другую директорию, главное, чтобы она совпадала с той, которая прописана в параметре DocumentRoot

  • Идем дальше. Установите UserDir , например, так:
UserDir d:/home

Это будет директория, в которой хранились бы домашние страницы пользователей, если бы это был настоящий Web-сервер, а также корневые каталоги виртуальных хостов (см. ниже). Не забудьте также создать этот каталог.

  • Установите DirectoryIndex так:
DirectoryIndex index.htm index.html

Это - так называемые файлы индекса, которые автоматически выдаются сервером при обращении к какой-либо директории, если не указано имя html-документа. В принципе, можно добавить сюда и другие имена, например, index.phtml, если Вы будите работать с PHP и т.д.

  • Найдите и пропишите такой параметр:
ScriptAlias /cgi-bin/ "d:/cgi-bin/"

Да, именно так, с двумя слэшами. Это будет та директория, в которой должны храниться Ваши CGI-скрипты. Если хотите, можете задать другое имя, например:

ScriptAlias /cgi/ "e:/mycgidir/"

Подобный параметр говорит Apache о том, что, если будет указан путь вида //localhost/cgi-bin , то на самом деле следует обратиться к директории d:/cgi-bin.

  • Теперь следует найти и настроить блок параметров, начинающийся с <Directory "d:/cgi-bin"> и заканчивающийся </Directory>. Это - установки для Вашей CGI-директории (если Вы установили для нее другое имя на предыдущем шаге, соответственно модифицируйте путь). Там должно быть:
<Directory "d:/cgi-bin">
  AllowOverride All
  Options ExecCGI
</Directory>
  • Настройте следующий параметр:
AddHandler cgi-script .bat 

Это говорит Apache о том, что файл с расширением .bat нужно рассматривать как CGI-скрипты.

  • И последнее - установите:
AddHandler server-parsed .shtml .shtm .sht

Или, если Вы хотите, чтобы и обычные файлы html обрабатывались SSI, напишите так:

AddHandler server-parsed .shtml .shtm .html .htm

Поздравляю - Вы настроили свой Apache, и он должен уже работать! Для запуска сервера нажмите Пуск ->Программы ->Apache Web Server ->Start Apache , при этом появится окно, очень похожее на Сеанс MS-DOS, и ничего больше не произойдет. Не закрывайте его и не трогайте до конца работы с Apache.

Несколько слов о том, как можно упростить запуск и завершение сервера. В Windows можно назначить любому ярлыку функциональную комбинацию клавиш, нажав которые, Вы запустите этот ярлык. Так что щелкните правой кнопкой на панели задач, в контекстном меню выберите Свойства, затем Настройка меню и кнопку Дополнительно. В открывшемся Проводнике назначьте ярлыку Start Apache комбинацию Ctrl+Alt+A. Теперь при нажатии комбинации Ctrl+Alt+A у Вас будет открываться сервер Apache.

3. Виртуальные хосты Apache.

Виртуальные хосты - хосты, имеющие уникальный адрес в Интернет, эмулируемые и поддерживаемые сервером.

Итак, Вы установили Apache. Получили, таким образом, директорию d:/document для хранения документов и d:/cgi-bin для CGI. Но вот беда: в Интернете вы поддерживаете несколько серверов, а Apache создал для вас только один. Конечно, можно структуру этих нескольких серверов хранить на одном сервере, однако проще и удобнее было бы создать несколько виртуальных хостов с помощью Apache, например, один с именем server1 и адресом 127.0.0.2 , а другой - с именем server2 и адресом 127.0.0.3 . (Конечно, вместо "server1 " и "server2 " Вам нужно будет указать желаемые имена Ваших виртуальных хостов. Советую назвать их так же, как и на Вашем настоящем Web-сервере - это может многое упростить при программировании скриптов.)

Как это принято в Unix, каждый сервер будет представлен своим каталогом в директории d:/home с именем, совпадающим с именем сервера. Например, сервер server1 будет храниться в директории d:/home/server1 , которую Вам необходимо создать прямо сейчас. В этой директории будут находиться:

  • файл access.log с журналом доступа к виртуальному серверу.
  • файл errors.log с журналом ошибок сервера.
  • директория document , где будут храниться html-документы.
  • директория cgi для хранения CGI-программ.

Последние две директории (www и cgi ) Вам тоже необходимо создать прямо сейчас.

Далее, для установки виртуального хоста необходимо сделать некоторые изменения в файле конфигурации Apache http2d.conf (см. выше), а также в некоторых файлах Windows. Вот необходимые действия:

  • Откройте директорию d:usrlocalapacheconf. Откройте находящийся там файл http2d.conf . Перейдите в его конец, Вам предстоит добавить туда несколько строк.
  • Пропишите следующие строки в конце файла после всех комментариев:
#----server1
<VirtualHost 127.0.0.2>
  ServerAdmin  webmaster@server1.com
  ServerName server1
  DocumentRoot "d:/home/server1/document"
  ScriptAlias /cgi/ "d:/home/server1/cgi/"
  ErrorLog d:/home/server1/error.log
  CustomLog d:/home/server1/access.log common
</VirtualHost>

При желании можно добавить и другие параметры (например, DirectoryIndexи т.д.) Вообще, не переопределенные параметры наследуются виртуальным хостом от главного.

  • Теперь надо немного подправить системный файл hosts, который находится в c:windowshosts (такого файла может не быть по умолчанию - в этом случае его надо создать). hosts - обычный текстовый файл, и в нем обычно заранее прописана только одна строка:
127.0.0.1       localhost

именно эта строка и задает соответствие имени localhost адресу 127.0.0.1 . Надо сказать, что имя localhost работает и без указанной выше строки. Для нашего виртуального хоста надо добавить соответствующую строчку, чтобы файл выглядел так:

127.0.0.1       localhost
127.0.0.2       server1

Этим Вы создадите виртуальный хост со следующими свойствами:

  • Имя - server1
  • Доступен по адресу //server1 (или //127.0.0.2).
  • Расположен, соответственно, в директории d:/home/server1.
  • Директория для хранения документов - d:/home/server1/document, доступная по адресу //server1/.
  • Директория для CGI - d:/home/server1/cgi , доступная по адресу //server1/cgi/
  • Файлы журналов хранятся в d:/home/server1

Ну вот, мы создали один виртуальный хост! Если будет необходимо сделать второй, нужно просто проделать аналогичные действия, заменив параметры, связанные с расположением хоста на диске. Главное, не забудьте в этом случае указать другой IP-адрес (лучше всего указывать их последовательно, начиная с 127.0.0.2 , затем 127.0.0.3 и т.д. - в этом случае все работает корректно). Желательно также для этих целей не указывать IP-адрес //127.0.0.1 , так как это - адрес главного сервера.

Кстати, необходимо заметить, что главный хост (не виртуальный, тот, который мы создали в разделах 1 и 2) по-прежнему доступен по адресу //127.0.0.1 или //localhost . Более того, его директория cgi-bin "видна" всем созданным виртуальным хостам, так что Вы можете ее использовать.

4. Установка PHP

В отличие от установки Apache, установка PHP короче, однако, это не означает, что проще. Дело в том, что, во-первых, у PHP нет нормальной setup-программы, как у Apache, а во-вторых, при его установке необходимо также настраивать сервер.

Итак, прежде всего, поговорим о каталоге, в котором у Вас будут находиться файлы PHP. Лучше всего его установить в каталог d:/usr/local/php3. Если Вы не иметь такой каталог (хотя, если Вы читали инструкцию по установке Apache, все должно быть в порядке), то Вы можете установить PHP в другой каталог. Но тогда могут возникнуть проблемы. Поэтому я настоятельно рекомендую разместить PHP на тот диск, где установлен Apache ( то есть D:), и в директорию d:usrlocalphp3.

Теперь, как обычно, по порядку описываю действия по установке PHP.

Настройка PHP

  • Создайте директорию d:/usr/local/php3 (если хотите другое имя, см. рассуждения выше). Это - та директория, в которую будет установлен PHP.
  • Скачайте дистрибутив PHP. Его размер составляет 904 Кб. Это zip-архив, который Вы должны будете открыть, чтобы разархивировать. Разворачивайте его в директорию d:/usr/local/php3.
  • Откройте в проводнике Windows директорию d:/usr/local/php3 и нажмите правой кнопкой мыши на файле PWS-php4.reg и выберите в контекстном меню пункт объединить - этим Вы автоматически добавите в Реестр некоторые установки, касающиеся PHP.

Настройка Apache

  • В файл конфигурации Apache conf/mime.types добавьте такую строку:
application/x-http2d-php3 phtml php3
  • Теперь откройте файл conf/http2d.conf и добавьте в его конец (но перед блоков виртуальных хостов, если они там есть, если нет - то в самый конец) такие строки:
<Directory "D:/usr/local/php3">
  Options ExecCGI
</Directory>
ScriptAlias "/D:/usr/local/php3/" "D:/usr/local/php3/"
Action application/x-http2d-php3 "/D:/usr/local/php3/php.exe" 

Ну вот, пожалуй, и все. Если Вы все сделали правильно, то PHP установлен. Напомню, что php-скрипты - это не то же самое, что cgi-скрипты. В частности, если cgi-скрипты обычно располагают в /cgi-bin/, то php-скрипт должен лежать в директории с документами. Иными словами, файл с написанный на php должен лежать в директории d:/document/

5. Установка Perl

Это совсем просто, за исключением, может быть, выбора директории для Perl. А именно, Вы ДОЛЖНЫ разместить Perl в той же директории, в которой он находится на Вашем настоящем Web-сервере. Заметьте, что это очень важно, так как Perl требует, чтобы в каждом скрипте первой строкой стоял путь к Perl-интерпретатору; например, эта строка может выглядеть так:

#!/usr/local/bin/perl

Эту же строку можно было бы написать и так:

#!/usr/local/bin/perl.exe

или даже так:

#!d:usrlocalbinperl.exe

Это заставляет искать Perl-интерпретатор в директории d:/usr/local/bin/ (если диск d: не указан, это означает, что он совпадает с диском, на котором расположен Apache). Ясно, что если Вы установите Perl не в такую же директорию, как на настоящем Web-сервере, Вам придется каждый раз менять эту самую первую строку во всех скриптах при закачке их на сервер. Итак, далее мы будем считать, что эта директория такова, как на большинстве Apache-серверов:

d:/usr/local/bin

ВНИМАНИЕ: очень распространенной ошибкой является установка Perl не в ту директорию или не на тот диск. Еще раз обращаю внимание на то, где должен быть расположен транслятор.

Если Вы все же установите пути неправильно, Apache выдаст непонятное сообщение об ошибке, а в errors.log появится сообщение: couldn't spawn child process.

Вот шаги, приводящие к цели:

  • Скачайте дистрибутив Perl. Его размер составляет 1, 41 Мб. Это саморазворачивающийся архив, Вам нужно будет его просто запустить и указать директорию d:/usr/local/.
  • Теперь настроим сервер. Найдите в файле конфигурации Apache conf/http2d.conf строчку
AddHandler cgi-script .bat .exe

Замените ее на

AddHandler cgi-script .bat .exe .pl .cgi

Как это ни странно, но эту директиву AddHandler иногда указывать не обязательно. Однако лучше перестраховаться...

Потом создайте директорию d:usrbin

и скопируйте из папки d:/usr/local/bin туда два файла: perl.exe и perl300.dll. Вот, собственно, и все.
Можете пользоваться Perl-транслятором.

Этим самым мы полностью настроили сервер Apache. Теперь он полностью готов к работе. Описанный в статье сервер Apache и все нужные к нему интерпретаторы, Вы можете найти, посетив сайт www.tweak.tut.by( mailto:my@email.com ) . Также на этом сайте Вы можете бесплатно взять несколько скриптов на CGI, Perl и PHP для проверки сервера, а также взять оригинал этой статьи.

Удачи Вам в настройке сервера Apache! Если у Вас возникнут вопросы, то пишите, постараюсь помочь.

Денис Куксюк, г. Брест

dean@inbox.ru( mailto:denis@tut.by )

www.tweak.tut.by ( http://webscript.ru/mailto:webmaster@server1.com )