РНР 5 в подлиннике

Страница 59 из 554


Гпава 4. Установка Apache

121

с его подкаталогами cgi и www, как мы делали это ранее), а хост ipbased — в каталоге z:/home/ipbased. В этих каталогах будут находиться:

□ файлы access.log с журналом доступа к виртуальному серверу;

□ файлы errors.log с журналом ошибок сервера;

□ каталог www, где, как обычно, будут размещаться HTML-документы;

□ каталог cgi для хранения CGI-программ.

На рис. 4.3 представлена структура каталогов, которая должна у нас получиться.

Рис. 4.3. Структура каталогов виртуального хоста

Для установки виртуальных хостов необходимо внести некоторые изменения в файл конфигурации Apache httpd.conf (см. разд. "Настройка файла конфигурации Apache" ранее в этой главе), а также в некоторые файлы Windows. Опишем, что для этого нужно сделать.

1. Создайте файл z:/usr/local/apache/conf/vhosts.conf (листинг 4.5). В нем вы будете хранить настройки всех виртуальных хостов.

! Листинг 4.5. Файл /usr/local/apache/conf/vhosts.conf

## Настройки виртуальных хостов Apache. NameVirtualHost 127.0.0.1 Listen 127.0.0.1:80 Listen 127.0.0.2:80

# localhost <VirtualHost *:*>

ServerAdmin webmaster@localhost

ServerName localhost

DocumentRoot "z:/home/localhost/www"

122

Часть II. Выбор и настройка инструментария

ScriptAlias /cgi/ "z:/home/localhost/cgi/" ErrorLog z:/home/localhost/error.log CustomLog z:/home/localhost/access.log common </VirtualHost>

# ipbased

<VirtualHost ipbased>

ServerAdmin webmaster@ipbased

ServerName ipbased

DocumentRoot "z:/home/ipbased/www"

ScriptAlias /cgi/ "z:/home/ipbased/cgi/"

ErrorLog z:/home/ipbased/error.log

CustomLog z:/home/ipbased/access.log common </VirtualHost>

# nmbased <VirtualHost *:*>

ServerAdmin webmaster@nmbased ServerName nmbased DocumentRoot "z:/home/nmbased/www" ScriptAlias /cgi/ "z:/home/nmbased/cgi/" ErrorLog z:/home/nmbased/error.log CustomLog z:/home/nmbased/access.log common </VirtualHost>

2. Для того чтобы этот файл подключался к файлу конфигурации Apache, добавьте в конец httpd.conf строку:

Include conf/vhosts.conf

( Замечание )

Обратите внимание на то, что мы добавили дополнительно секцию <virtuaiHost> для хоста localhost. Если этого не сделать, то все запросы к нему (т. е. по адресу 127.0.0.1) будут обработаны name-based хостом nmbased. Происходит это из-за того, что хосты в секции <virtualHost> имеют больший приоритет при обработке, чем главный хост, который мы создали ранее. Если параметры запроса не подходят ни к одному виртуальному хосту, то используется самый первый в списке.

Директива NameVirtualHost сообщает серверу, что указанный IP-адрес может использоваться несколькими виртуальными хостами, поэтому для обработки запросов, поступающих на этот адрес, нужно привлекать протокол HTTP 1.1 (который, собственно, и поддерживает технику работы с хостами типа name-based).

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

Внимание!

По соображениям безопасности рекомендуем всегда явно перечислять адреса в директивах Listen, а не пользоваться устаревшей командой BindAddress *, которая заставляет Apache прослушивать все возможные адреса. Это гарантирует, что никто извне не сможет проникнуть к вам на отладочный сервер.




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006