"Виртуальные хосты - хосты, имеющие уникальный адрес в
Интернет, эмулируемые и поддерживаемые сервером" Древнее языческое
заклинание
Итак, Вы установили Apache. Получили, таким образом, директорию
f:/www для хранения документов и f:/cgi-bin для CGI. Но вот
беда: в Интернете вы поддерживаете несколько серверов, а Apache создал для вас
только один. Конечно, можно структуру этих несколькох серверов хранить на одном
сервере, однако проще и удобнее было бы создать несколько виртуальных
хостов с помощью Apache, например, один с именем serv1 и адресом
127.0.0.2, а другой - с именем serv2 и адресом 127.0.0.3.
(Конечно, вместо "serv1" и "serv2" Вам нужно
будет указать желаемые имена Ваших виртуальных хостов. Советуем назвать их так
же, как и на Вашем настоящем Web-сервере - это может многое упростить при
программировании скриптов.)
Как это принято в Unix, каждый сервер будет представлен своим каталогом в
директории f:/home с именем, совпадающим с именем сервера. Например,
сервер serv1 будет храниться в директории f:/var/www/serv1, которую
Вам необходимо создать прямо сейчас. В этой директории будут находиться:
- файл access.log с журналом доступа к виртуальному серверу.
- файл errors.log с журналом ошибок сервера.
- директория www, где будут храниться html-документы.
- директория cgi для хранения CGI-программ.
Последние две директории (www и cgi) Вам тоже необходимо
создать прямо сейчас.
Далее, для установки виртуального хоста необходимо сделать некоторые изменеия
в файле конфигурации Apache httpd.conf (см. выше), а также в некоторых
файлах Windows. Вот необходимые действия:
- Откройте директорию f:\usr\local\apache\conf. Откройте находящийся
там файл httpd.conf. Перейдите в его конец, Вам предстоит добавить туда
несколько строк.
- Пропишите следующие строки в конце файла после всех комментариев:
#----serv1
<VirtualHost 127.0.0.2>
ServerAdmin webmaster@serv1.ru
ServerName serv1
DocumentRoot "f:/var/www/serv1/www"
ScriptAlias /cgi/ "f:/var/www/serv1/cgi/"
ErrorLog f:/var/www/serv1/error.log
CustomLog f:/var/www/serv1/access.log common
</VirtualHost> При желании можно добавить и другие параметры
(например, DirectoryIndex и т.д.) Вообще, не переопределенные параметры
наследуются виртуальным хостом от главного.
- Теперь надо немного подправить системный файл hosts, который
находится в C:\WINDOWS\hosts (такого файла может не быть по умолчанию -
в этом случае его надо создать). hosts - обычный текстовый файл, и в
нем обычно заранее прописана только одна строка:
127.0.0.1 localhost именно эта строка и задает соответствие имени
localhost адресу 127.0.0.1. (Ради справедливости следует сказать,
что имя localhost работает и без указанной выше строки. Ну и выдумщики же
эти парни из фирмы Microsoft!) Для нашего виртуального хоста надо добавить
соответствующую строчку, чтобы файл выглядел так: 127.0.0.1 localhost
127.0.0.2 serv1 Этим Вы создадите виртуальных хост со следующими
свойствами:
- Имя - serv1
- Доступен по адресу http://serv1 (или http://127.0.0.2).
- Расположен, соответственно, в директории f:/var/www/serv1.
- Директория для хранения документов - f:/var/www/serv1/www, доступная
по адресу http://serv1/.
- Директория для CGI - f:/var/www/serv1/cgi, доступная по адресу
http://serv1/cgi/
- Файлы журналов хранятся в f:/var/www/serv1
Ну вот, мы создали один виртуальный хост! Если будет необходимо сделать
второй, нужно просто проделать аналогичные действия, заменив параметры,
связанные с расположением хоста на диске. Главное, не забудьте в этом случае
указать другой IP-адрес (лучше всего указывать их последовательно, начиная с
127.0.0.2, затем 127.0.0.3 и т.д. - в этом случае все работает
корректно). Желательно также для этих целей не указывать IP-адрус
http://127.0.0.1, так как это - адрес главного сервера.
Кстати, необходимо заметить, что главный хост (невиртуальный, тот, который мы
создали в раздулах 1 и 2) по-прежнему доступен по адресу http://127.0.0.1
или http://localhost. Более того, его директория cgi-bin
"видна" всем созданным виртуальным хостам, так что Вы можете ее
использовать.
|