Создание виртуальных хостов на Apache
Данное руководство предназначено для использования в локальной среде тестирования на Windows. Инструкции подходят для Apache 2.4 и более поздних версий.
- Создайте вложенную папку внутри
C:\vhosts
для каждого виртуального хоста, который вы хотите добавить на сервер Apache. - Откройте
C:\WINDOWS\system32\drivers\etc\hosts
в блокноте или в любом другом текстовом редакторе. Найдите следующую строку в нижней части документа:127.0.0.1 localhost
- На отдельной пустой строке введите 127.0.0.1, затем поставьте пробел и введите имя виртуального хоста, который необходимо зарегистрировать. Например, чтобы создать виртуальный хост с именем mysite, введите следующую команду:
127.0.0.1 mysite
- Добавьте нужное количество дополнительных виртуальных хостов, каждый из которых должен быть введён на отдельной строке с указанием того же IP-адреса (127.0.0.1). Сохраните файл хостов, и закройте его.
- Откройте конфигурационный файл Apache,
httpd.conf
, в текстовом редакторе. Он находится в файлах Apache в папкеconf
. Если вы используете XAMPP, этот файл находится по адресуC:\xampp\apache\conf\httpd.conf
. Прокрутите вниз до конца раздела Supplemental configuration и найдите следующий раздел (приблизительно около 500 строки):#Virtual hosts #Include conf/extra/httpd-vhosts.conf
- Сотрите # около начала второй строки, раздел теперь должен выглядеть так:
#Virtual hosts Include conf/extra/httpd-vhosts.conf
- Сохраните файл
httpd.conf
и закройте его. - Откройте
extra\httpd-vhosts.conf
в блокноте или в любом другом текстовом редакторе. Если вы используете XAMPP, то адрес будет такимC:\xampp\apache\conf\extra\httpd-vhosts.conf
. Главный раздел выглядит так: В XAMPP все строки будут закомментированы. Вам нужно удалить # в начале строки, содержащей следующую директиву:NameVirtualHost *.80
- Переместите курсор в область пустого пространства, расположенного на 15 строке в предыдущем скриншоте, и вставьте туда следующие три строки кода:
<Directory C:/vhosts> Require all granted </Directory>
Это позволяет установить правильные разрешения для папки, содержащей сайты, которые нужно рассматривать в качестве виртуальных хостов. - На скриншоте в строках с 27 по 42 расположен код, который показывает примеры определения виртуальных хостов (в XAMPP они закоментированы). Там показаны все команды, которые могут быть использованы, но из них только DocumentRoot и ServerName являются обязательными.
Когда вы используете виртуальный хостинг, Apache отключает главный корень сервера, поэтому первое определение должно содержать оригинальный корневой каталог. Затем вы добавляете каждый новый виртуальный хост внутри пары тегов<VirtualHost>
, используя расположение веб-файлов сайта в качестве значения дляDocumentRoot
, и имя виртуального хоста дляServerName
. Если путь содержит пробелы, то необходимо весь путь заключить в кавычки. Если ваш корневой каталог расположен, как у меня, вC:\htdocs
, и вы добавляете mysite в качестве виртуального хоста вC:\vhosts
, измените код на строках с 27 по 42 следуя следующему примеру (в XAMPP, просто добавить эти новые директивы в нижней части файла, и установитьDocumentRoot
дляlocalhost
вC:/xampp/htdocs
):<VirtualHost *:80> DocumentRoot c:/htdocs ServerName localhost </VirtualHost> <VirtualHost *:80> DocumentRoot c:/vhosts/phpdw ServerName mysite </VirtualHost>
- Сохраните
httpd-vhosts.conf
и перезапустите Apache. Все сайты в корневом каталоге сервера будет по-прежнему доступны черезhttр://localhost/sitename/
. Все, что в виртуальном хосте будет доступен через прямой адрес, например,httр://mysite/
. - Если у вас есть трудности с доступом к виртуальным хостам, убедитесь, что вы добавили
index.php
в директивуDirectoryIndex
в файлеhttpd.conf
.