На этой странице

Создание виртуальных хостов Apache 2.4 на Windows


Виртуальные серверы создаются с помощью раздела <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).