Server Apache
httpd-vhosts.conf — конфигурирование виртуальных хостов

httpd-vhosts.conf — конфигурирование Apache для поддержки виртуальных хостов



#

Apache — виртуальные хосты

httpd-vhosts.conf — создание виртуальных хостов

Концепция виртуальных хостов позволяет создавать, конфигурировать и обслуживать на одном (физическом) веб-сервере Apache множество сайтов.
Виртуальный хост может быть:
«привязанным к IP-адресу»используется отдельный IP-адрес для каждого сайта
или
«привязанным к имени»один IP-адрес для множества сайтов с различными именами.

Термин Виртуальный — якобы существующий, получил распространение в конце 80-х годов. Компьютеры того времени не имели жестких дисков и при включении могли только подвести считывающую головку дисковода к первой дорожке гибкого диска. В начале работы, с пятидюймового системного диска емкостью 256 Кб загружались в память основные компоненты операционной системы (OS-DOS). Затем, с другой дискеты, программное обеспечение, например, Бейсик. Созданная на нем программа записывалась на гибкий диск. Для её исполнения необходимо было загрузить в память интерпретатор Бейсика. То есть, постоянно работал дисковод, приходилось менять гибкие диски, что занимало много времени.
На определенном этапе, с увеличением емкости памяти, появилась возможность часть её выделять и присваивать имя. В эту, именованную, допустим, как диск N, область памяти (получившую название - виртуальный диск), переписывалось нужное программное обеспечение. Отпадала необходимость постоянно обращаться к гибким дискам, что в десятки раз увеличивало производительность работы.

Хост (жарг. host - хозяин) — в обычном понимании любой компьютер, сервер, подключённый к локальной или глобальной сети.

Веб-узел — каждый подключенный к Интернету компьютер, независимо от выполняемых функций (сервер, компьютер клиента, DNS и FTP-сервер и т. д.) — имеет свой уникальный IP-адрес. Иначе обмен информацией - невозможен.

При включении модема, маршрутизатора интернет-провайдер выделит, для входа в сеть Интернет с вашего компьютера, динамический (временный) IP - адрес (ай-пи-адрес).

, в 06 час. 35 мин. 05 сек. вам выделен IP — 54.80.219.236

  Узел - это адрес. Любой узел является хостом
  Например:  
Сайт avege.ru
IP сайта 127.0.0.1
Ваш IP 54.80.219.236 Определить ваш IP
протокол сервера HTTP/1.0

Вы пришли на сайт — avege.ru
и получили с сервера с IP-адресом — 127.0.0.1
на ваш компьютер с IP — 54.80.219.236
страницу — httpd_vhosts_conf.html (см. адресную строку браузера).

После получения у интернет-провайдера IP - адреса и установки канала связи, происходит преобразование имени сайта, портала, сервера, например — vk.com (ВКонтакте), в понятный для компьютера его полный адрес IP, имеющий вид — 87.240.165.80
Служба Internet выполняющая эту операцию, называется службой имен доменов — службой DNS (Domain Name System - система доменных имён).
Компьютеры, обеспечивающие выполнение программ этой службы, называются серверами имен доменов - серверами DNS (Domain Name Servers).
DNS используется для обозначения обоих понятий - службы и серверов имён доменов.

Администратор: Командная строка

Microsoft Windows [Version 10.0.14393]
(c) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены.

C:\Windows\system32>ping vk.com

Обмен пакетами с vk.com [87.240.165.80] с 32 байтами данных:
Ответ от 87.240.165.80: число байт=32 время=32мс TTL=58
Ответ от 87.240.165.80: число байт=32 время=32мс TTL=58
Ответ от 87.240.165.80: число байт=32 время=32мс TTL=58
Ответ от 87.240.165.80: число байт=32 время=33мс TTL=58

Статистика Ping для 87.240.165.80:
    Пакетов: отправлено = 4, получено = 4, потеряно = 0
    (0% потерь)
Приблизительное время приема-передачи в мс:
    Минимальное = 32мсек, Максимальное = 33 мсек, Среднее = 32 мсек

C:\Windows\system32>

HTTP-сервер социальной сети ВКонтакте имеет выделенный IP-адрес — 87.240.165.80.


На предыдущей странице, в файл конфигурации для настройки каталогов пользователей — httpd-userdir.conf, были внесены изменения - определён каталог для виртуальных хостов (сайтов пользователей) — UserDir "www/docs".

Далее, в конфигурационном файле httpd-vhosts.conf нужно, в секции (секциях) VirtualHost, изменить несколько директив для вашего сайта (сайтов).

В начале внесите в файл httpd-vhosts.conf изменения для одного сайта

Для примера, можно временно назвать сайт — namesite.ru. — Это имя (доменное имя) одного из разрабатываемых или отлаживаемых сайтов на сервере Apache, которое, после полной настройки сервера Apache, легко будет заменить на выбранное вами.
При обращении к любому сайту по имени - http://www.имя-сайта.ru/, будет выведена индексная страница - index.html

Создайте на диске "C:\" папку www, в ней каталог - docs (C:/www/docs/)
В нём три подкаталога:
  1. logs (C:/www/docs/logs/)
    • namesite.ru-access.log — пустой файл
    • namesite.ru-error.log     — пустой файл
  2. cgi-bin (C:/www/docs/cgi-bin/)
  3. namesite.ru (C:/www/docs/namesite.ru/)
    • index.htmlиндексная страница сайта
    • папки и файлы страниц сайта
Структура вашего сайта    (где, namesite.ru — это имя виртуального хоста - имя сайта).
  • C:\
    • www
      • docs
        • logs
          • namesite.ru-access.log
          • namesite.ru-error.log
        • cgi-bin
          • script1.pl
          • script2.cgi
        • namesite.ru
          • подкаталог 1
            • page-1.html
            • page-n.html
          • подкаталог n
            • page-1.html
            • page-n.html
          • index.html - индексная (главная) страница сайта
      • html
        • logs
          • namesite.ru-access.log
          • namesite.ru-error.log
        • cgi-bin
          • script1.pl
          • script2.cgi
        • namesite.ru
          • подкаталог 1
            • page-1.html
            • page-n.html
          • подкаталог n
            • page-1.html
            • page-n.html
          • index.html - индексная (главная) страница сайта
    • Каталоги и файлы OS Windows и других программ
Важно!    В каталоге каждого сайта обязательно должен быть подкаталог logs с пустыми файлами журналов - namesite.ru-access.log и namesite.ru-error.log, а также файл главной страницы - index.html

Внимание!    Без внесения изменений в файл — httpd-vhosts.conf

при проверке файла конфигурации виртуальных хостов с помощью команды - httpd.exe -S, вы получите несколько предупреждений:

Администратор: Командная строка

   Microsoft Windows [Version 10.0.14393]
(c) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены.

C:\Windows\system32>cd C:\Program Files\Apache Software Foundation\Apache2.4\bin\

C:\Program Files\Apache Software Foundation\Apache2.4\bin>httpd.exe -t
AH00112: Warning: DocumentRoot [C:/Program Files/Apache Software Foundation/Apache2.4/docs/dummy-host.server-apache24.ru] does not exist
AH00112: Warning: DocumentRoot [C:/Program Files/Apache Software Foundation/Apache2.4/docs/dummy-host2.server-apache24.ru] does not exist
Syntax OK

C:\Program Files\Apache Software Foundation\Apache2.4\bin>                     
               

В каталоге C:/Program Files/Apache Software Foundation/Apache2.4/conf/extra/
откройте в Блокноте файл httpd-vhosts.conf

httpd-vhosts.conf — содержание файла конфигурации сервера Apache 2.4


  Из содержания файла httpd-vhosts.conf становятся понятными причины ошибок:

AH00112: Внимание: DocumentRoot [C:/Program Files/Apache Software Foundation/Apache2.4/docs/dummy-host.server-apache24.ru] не существует
AH00112: Внимание: DocumentRoot [C:/Program Files/Apache Software Foundation/Apache2.4/docs/dummy-host2.server-apache24.ru] не существует

В частности, видно, что сервер Apache не может обратится к папкам примеров сайтов:
dummy-host.server-apache24.ru
dummy-host2.server-apache24.ru
Которые должны быть размещены в каталоге хостов - C:/Program Files/Apache Software Foundation/Apache2.4/docs/.

Доменные имена - dummy-host.server-apache24.ru и dummy-host2.server-apache24.ru (dummy - кукла, example - образец) — по многолетней традиции, используются для примера и их необходимо изменить.

Внесение изменений в файл конфигурации сервера Apache — httpd-vhosts.conf
Существует два способа конфигурирования Apache для поддержки некоторого числа виртуальных хостов:
  • виртуальные хосты на основе имени (более одного веб - сайта по IP - адресу)
  • виртуальные хосты на основе IP (IP - адрес для каждого веб - сайта)

Возможен и смешанный вариант конфигурирования.

Виртуальные хосты основанные на адресе IP.
Первый шаг заключается в создании блока <VirtualHost> из комбинации адреса-IP и номера порта для каждого отдельного узла.
Пример — <VirtualHost 127.0.0.8:80> - привязывает виртуальные хосты к адресу -127.0.0.8 и 80-му порту:

namesite.ru — это имя (доменное имя) для разрабатываемого (тестируемого, отлаживаемого) сайта. Которое, после настройки веб-сервера Apache, можете заменить на выбранное вами.

Ни один сайт, в сети WWW, не может иметь IP-адрес из диапазона 127.0.0.1 — 127.255.255.255

Поэтому, в секциях - <VirtualHost *:80> вместо символа " * " нужно указать IP-адрес из из указанного диапазона.

Для обращения к вашему сайту по доменному имени, например - namesite.ru, нужно, в файле конфигурации httpd-vhosts.conf, создать секцию <VirtualHost>. В директивах которой указать пути к каталогу, подкаталогам и файлам вашего сайта.

Сайты виртуальных хостов конфигурируются в файлах httpd-vhosts.conf и httpd-userdir.conf.

Внесите изменения в файл httpd-vhosts.conf, как показано ниже.


Все записи, за исключением выделенных красным цветом, должны быть закомментированы. Строки начинающиеся с символа '#' - это комментарии.


Если вы создали секцию для домена www.namesite.ru (namesite.ru) и хотите добавить новый виртуальный хост, то просто удалите символ комментария '#', со строк с 45 по 65 и замените avege.ru на имя вашего сайта

Для проверки файлов конфигурации на синтаксические ошибки, используется команда — httpd.exe -t.

Проверить файл конфигурации виртуальных хостов можно с помощью команды — httpd.exe -S.

Директива — команда конфигурации, которая контролирует один или несколько аспектов поведения сервера Apache.

Внимание!   Если вы не создали в каталоге C:/www/docs/ папку сайта с именем namesite.ru
(c:/www/docs/namesite.ru/)
и не внесли изменения в файлы - httpd-userdir.conf и hosts
то при проверке файла конфигурации виртуальных хостов с помощью команды - httpd.exe -S, вы получите несколько предупреждений:

Администратор: Командная строка

 Microsoft Windows [Version 10.0.14393]
(c) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены.

C:\Windows\system32>cd C:\Program Files\Apache Software Foundation\Apache2.4\bin\

C:\Program Files\Apache Software Foundation\Apache2.4\bin>httpd.exe -S
AH00112: Warning: DocumentRoot [C:/www/docs/namesite.ru] does not exist
VirtualHost configuration:
127.0.0.8:80           www.namesite.ru (C:/Program Files/Apache Software Foundation/Apache2.4/conf/extra/httpd-vhosts.conf:23)
(OS 3)╤шёЄхьх эх єфрхЄё  эрщЄш єърчрээ√щ яєЄ№.  : AH02291: Cannot access directory 'C:/www/docs/namesite.ru/logs/' for error log of vhost defined at C:/Program Files/Apache Software Foundation/Apache2.4/conf/extra/httpd-vhosts.conf:23
AH00014: Configuration check failed

C:\Program Files\Apache Software Foundation\Apache2.4\bin>                   

Установка сервера Apache 2.4 на Windows