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



Допустим, что XAMPP у вас установлен на диске C: (C:\xampp\). А хранить свои проекты вы намереваетесь совершенно в другом месте на диске D: (D:\MySites\). Сразу хочу сказать, что лучше создавать папку для хранения своих проектов в месте, например, синхронизированном с облачным хранилищем, тогда вы можете иметь доступ и работать с очередным сайтом с разных компьютеров. Это очень удобно!

Итак, вводные получены, приступаем. В первую очередь создадим сам сайт, который в нашем примере будет состоять всего из одного файла index.php, размещенного в папке test1.loc (название папки сайта, оно же его доменное имя) по адресу D:\MySites\.
Содержимое файла D:\MySites\test1.loc\index.php будет выглядеть следующим образом:

<?php
 echo "Hello World!";
?>

Открываем для редактирования C:\xampp\apache\conf\extra\httpd-vhosts.conf и вносим соответствующие изменения, после чего файл будет выглядеть так:

# Virtual Hosts
#
# Required modules: mod_log_config

# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
# NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
	ServerAdmin webmaster@test1.loc
        DocumentRoot "D:/MySites/test1.loc"
        ServerName test1.loc
	ServerAlias www.test1.loc
	ErrorLog "D:/MySites/test1.loc/error.log"
        CustomLog "D:/MySites/test1.loc/access.log" common
	<Directory "D:/MySites/test1.loc">
		Require all granted
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>
</VirtualHost>

Далее по адресу C:\Windows\System32\drivers\etc ищем файл hosts и так же, открываем его для редактирования.

Внимание! Иногда система делает файл hosts невидимым. В этом случае вы должны иметь права администратора, чтобы в свойствах родительской папки etc убрать значение «скрытый» для всех внутренних файлов. Чтобы не искать каждый раз файл hosts заново создайте его ярлык на рабочем столе.

Вносим в файл hosts следующие записи (ниже строки # localhost name resolution is handled within DNS itself):

...
# localhost name resolution is handled within DNS itself.
	127.0.0.1       localhost
	::1             localhost
	127.0.0.1       test1.loc
	127.0.0.1       www.test1.loc

Последним шагом производим запуск или перезапуск локального сервера и в адресной строке браузера вводим адрес нашего сайта http://test1.loc/ и жмем «enter». Если все сделано правильно, то в окне браузера вы увидите Hello World!


При создании еще одного сайта (место его размещения может отличаться от предыдущего, т.е. проекты могут спокойно находиться в разных местах вашего компьютера), не забывайте просто добавлять соответствующие записи в файлах hosts и httpd-vhosts.conf, после чего производить перезапуск локального сервера.