Настройка виртуальных хостов 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