Настройка виртуальных хостов Apache в Windows

14.06.2018

Теги: ApacheWeb-разработкаWindowsНастройкаУстановка

Виртуальные хосты могут быть привязаны к имени хоста (например, host.local) или к IP-адресу (например, 127.0.0.3). Рассмотрим оба способа, и начнём с создания директорий виртуальных хостов. После установки Apache у меня уже есть директория DocumentRoot:

DocumentRoot d:/work/localhost/www
<Directory "d:/work/localhost*/www">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Внутри директории d:/work создаем еще три: localhost1, localhost2, localhost3. Внутри каждой директории localhost* создаем еще одну директорию www. В каждую папку www добавляем файл index.html с любым содержанием, который позволил бы идентифицировать хост. Например

  • в файл D:\work\localhost1\www\index.html добавляем текст «localhost1»
  • в файл D:\work\localhost2\www\index.html добавляем текст «localhost2»
  • в файл D:\work\localhost3\www\index.html добавляем текст «localhost3»
[D:\]
    [work]
        [localhost]
            [www]
                index.html
            access.log
            error.log
        [localhost1]
            [www]
                index.html
            access.log
            error.log
        [localhost2]
            [www]
                index.html
            access.log
            error.log
        [localhost3]
            [www]
                index.html
            access.log
            error.log

В файле C:\wamp\apache\conf\httpd.conf надо найти и раскоментировать строку:

Include conf/extra/httpd-vhosts.conf

В файле C:\wamp\apache\conf\extra\httpd-vhosts.conf надо закомментировать (или удалить) те строки, которые приведены по умолчанию.

Виртуальные хосты на основе IP-адреса

Для виртуальных хостов, которые привязаны к IP, требуются несколько IP-адресов. Таковые у нас имеются: это 127.0.0.1, 127.0.0.2, 127.0.0.3, 127.0.0.4, 127.0.0.5 и так далее. И к каждому из них можно привязать виртуальный хост.

Для этого добавляем в файл C:\Windows\System32\drivers\etc\hosts строки

127.0.0.1 localhost host.ru www.host.ru
127.0.0.2 localhost1 host1.ru www.host1.ru
127.0.0.3 localhost2 host2.ru www.host2.ru
127.0.0.4 localhost3 host3.ru www.host3.ru

А в файл C:\wamp\apache\conf\extra\httpd-vhosts.conf добавляем следующее

#
#   localhost
#
<VirtualHost 127.0.0.1:80>
    ServerAdmin admin@localhost
    ServerName localhost
    DocumentRoot d:/work/localhost/www
    ServerAlias host.ru www.host.ru
    ErrorLog d:/work/localhost/error.log
    CustomLog d:/work/localhost/access.log common
</VirtualHost>
#
#   localhost1
#
<VirtualHost 127.0.0.2:80>
    ServerAdmin admin@localhost1
    ServerName localhost1
    DocumentRoot d:/work/localhost1/www
    ServerAlias host1.ru www.host1.ru
    ErrorLog d:/work/localhost1/error.log
    CustomLog d:/work/localhost1/access.log common
</VirtualHost>
#
#   localhost2
#
<VirtualHost 127.0.0.3:80>
    ServerAdmin admin@localhost2
    ServerName localhost2
    DocumentRoot c:/work/localhost2/www
    ServerAlias host2.ru www.host2.ru
    ErrorLog d:/work/localhost2/error.log
    CustomLog d:/work/localhost2/access.log common
</VirtualHost>
#
#   localhost3
#
<VirtualHost 127.0.0.4:80>
    ServerAdmin admin@localhost3
    ServerName localhost3
    DocumentRoot d:/work/localhost3/www
    ServerAlias host3.ru www.host3.ru
    ErrorLog d:/work/localhost3/error.log
    CustomLog d:/work/localhost3/access.log common
</VirtualHost>

Теперь можно обращаться к виртуальным хостам так:

  • http://127.0.0.1, http://localhost/, http://host.ru/, http://www.host.ru/
  • http://127.0.0.2, http://localhost1/, http://host1.ru/, http://www.host1.ru/
  • http://127.0.0.3, http://localhost2/, http://host2.ru/, http://www.host2.ru/
  • http://127.0.0.4, http://localhost3/, http://host3.ru/, http://www.host3.ru/

Виртуальные хосты на основе имени хоста

Для этого добавляем в файл C:\Windows\System32\drivers\etc\hosts строки

127.0.0.1 localhost host.ru www.host.ru
127.0.0.1 localhost1 host1.ru www.host1.ru
127.0.0.1 localhost2 host2.ru www.host2.ru
127.0.0.1 localhost3 host3.ru www.host3.ru

А в файл C:\wamp\apache\conf\extra\httpd-vhosts.conf добавляем следующее

#
#   localhost
#
<VirtualHost *:80>
    ServerAdmin admin@localhost
    ServerName localhost
    DocumentRoot d:/work/localhost/www
    ServerAlias host.ru www.host.ru
    ErrorLog d:/work/localhost/error.log
    CustomLog d:/work/localhost/access.log common
</VirtualHost>
#
#   localhost1
#
<VirtualHost *:80>
    ServerAdmin admin@localhost1
    ServerName localhost1
    DocumentRoot d:/work/localhost1/www
    ServerAlias host1.ru www.host1.ru
    ErrorLog d:/work/localhost1/error.log
    CustomLog d:/work/localhost1/access.log common
</VirtualHost>
#
#   localhost2
#
<VirtualHost *:80>
    ServerAdmin admin@localhost2
    ServerName localhost2
    DocumentRoot c:/work/localhost2/www
    ServerAlias host2.ru www.host2.ru
    ErrorLog d:/work/localhost2/error.log
    CustomLog d:/work/localhost2/access.log common
</VirtualHost>
#
#   localhost3
#
<VirtualHost *:80>
    ServerAdmin admin@localhost3
    ServerName localhost3
    DocumentRoot d:/work/localhost3/www
    ServerAlias host3.ru www.host3.ru
    ErrorLog d:/work/localhost3/error.log
    CustomLog d:/work/localhost3/access.log common
</VirtualHost>

Теперь можно обращаться к виртуальным хостам так:

  • http://localhost/, http://host.ru/, http://www.host.ru/
  • http://localhost1/, http://host1.ru/, http://www.host1.ru/
  • http://localhost2/, http://host2.ru/, http://www.host2.ru/
  • http://localhost3/, http://host3.ru/, http://www.host3.ru/

Дополнительно

Поиск: Apache • Web-разработка • Windows • Установка • Настройка • Виртуальный хост • IP-адрес • VirtualHost

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.