Настройка виртуальных хостов Apache в Windows
14.06.2018
Теги: Apache • Web-разработка • 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 2.4, MySQL 8.0, PHP 7, phpMyAdmin) на Windows 10
- Подключение виртуальных хостов Apache в Windows
Поиск: Apache • Web-разработка • Windows • Установка • Настройка • Виртуальный хост • IP-адрес • VirtualHost