Виртуальные серверы создаются с помощью раздела <VirtualHost> и позволяют размещать на одном сервере несколько сайтов.
Сейчас мы создадим три новых сайта на сервере . Один будет доступен по IP – адресу 127.0.0.1 с именем site , а второй – по IP – адресу 127.0.0.2 и именем site1 и третий по IP – адресу 127.0.0.3 и именем site2.
Создадим в каталоге C:\WebServer\home\ три папки site , site1 и site2 .
В папку site добавляем файл index.html , со следующим содержанием:
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Новый сайт</title>
<style type="text/css">
@media screen and (max-width: 767px) {
body {
max-width: 767px;
height: auto;
}
}
body { /* Стиль для всего документа */
font-size: 12pt; /* Размер шрифта */
font-family: "Verdana", sans-serif; /* Название шрифта */
}
h1 {
color: blue; /* Цвет шрифта */
}
</style>
</head>
<body>
<h1>Новый сайт</h1>
<p>Это сайт по IP – адресу 127.0.0.1 с именем site</p> </body>
</html>
В папку site1 добавляем файл index.html , со следующим содержанием:
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Новый сайт 1</title>
<style type="text/css">
@media screen and (max-width: 767px) {
body {
max-width: 767px;
height: auto;
}
}
body { /* Стиль для всего документа */
font-size: 12pt; /* Размер шрифта */
font-family: "Verdana", sans-serif; /* Название шрифта */
}
h1 {
color: blue; /* Цвет шрифта */
}
</style>
</head>
<body>
<h1>Новый сайт 1</h1>
<p>Это сайт по IP – адресу 127.0.0.2 с именем site</p> </body>
</html>
В папку site2 добавляем файл index.html , со следующим содержанием:
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Новый сайт 2</title>
<style type="text/css">
@media screen and (max-width: 767px) {
body {
max-width: 767px;
height: auto;
}
}
body { /* Стиль для всего документа */
font-size: 12pt; /* Размер шрифта */
font-family: "Verdana", sans-serif; /* Название шрифта */
}
h1 {
color: blue; /* Цвет шрифта */
}
</style>
</head>
<body>
<h1>Новый сайт 2</h1>
<p>Это сайт по IP – адресу 127.0.0.3 с именем site</p> </body>
</html>
Нужно открыть файл httpd-vhosts.conf который расположен в папке C:\WebServer\WAMP\Apache24\conf\extra и находим строки :
<VirtualHost _default_:80>
DocumentRoot "${SRVROOT}/htdocs"
#ServerName www.example.com:80
</VirtualHost>
Если этих строк нет , то добавим их в конец файла , они объявляют хост, используемый по умолчанию .
Исправим строку:
#ServerName www.example.com:80
Так , чтобы она выглядела следующим образом:
ServerName localhost
Заменим строку:
DocumentRoot "${SRVROOT}/htdocs"
На:
DocumentRoot "c:/WebServer/home/www"
И добавим в конец файла следующие строки :
<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@site
DocumentRoot "c:/WebServer/home/site"
ServerName site
</VirtualHost>
<Directory "c:/WebServer/home/site">
Options -Indexes +Includes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<VirtualHost 127.0.0.2:80>
ServerAdmin webmaster@site1
DocumentRoot "c:/WebServer/home/site1"
ServerName site1
</VirtualHost>
<Directory "c:/WebServer/home/site1">
Options -Indexes +Includes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<VirtualHost 127.0.0.3:80>
ServerAdmin webmaster@site2
DocumentRoot "c:/WebServer/home/site2"
ServerName site2
</VirtualHost>
<Directory "c:/WebServer/home/site2">
Options -Indexes +Includes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Сейчас мы создали 3 сайта – site , site1 , site2 .
Сохраняем и закрываем файл. Теперь его необходимо подключить к главному конфигурационному файлу httpd.conf . Открываем файл httpd.conf и проверяем , убран ли символ комментария # перед строкой :
Include conf/extra/httpd-vhosts.conf – Строка 511.
Сохраняем файл httpd.conf и перезагружаем сервер. Теперь открываем Web – браузер и набираем в адресной строке :
http://127.0.0.1/
В итоге мы попадем на site
http://127.0.0.2/
На site1
http://127.0.0.3/
На site2
Что мы сделали , создали три сайта , в не папки www у которой адрес http://localhost/www/ Сейчас мы имеем 4 сайта , один находится по адресу C:\WebServer\home\www , и три других по адресам :C:\WebServer\home\:http://127.0.0.1/ ,http://127.0.0.2/ ,http://127.0.0.3/ . Как видите все очень просто.
Для того чтобы можно было использовать доменные имена (site , site1 и site2 ) , необходимо в конец файла host расположенного в папке C:\Windows\System32\Drivers\etc дописать три строки:
127.0.0.1 site
127.0.0.2 site1
127.0.0.3 site2
Теперь когда открываем Web – браузер и в адресной строке набираем :
http://site/ – попадем на сайт
http://site1/ – попадем на сайт 1
http://site2/ – попадем на сайт 2
Теперь у нас доступны четыре виртуальных хоста – localhost , site , site1 , site2 . Причем два первых хоста расположены на одном IP – адресе . По этому принципу можно создать и другие хосты .
Название виртуального хоста необходимо указывать без точки . Например site , а не site.ru . В противном случае вы не сможите попасть на реальный сайт site.ru , не удалив строку и файла hosts (в каталоге C:\Windows\System32\Drivers\etc).