Server Apache virtualhost
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 - адрес (ай-пи-адрес).
, в [an error occurred while processing this directive] вам выделен IP — [an error occurred while processing this directive]
Например: | ||
---|---|---|
Сайт | avege.ru | |
IP сайта | 95.213.139.92 | |
Ваш IP | 3.239.51.78 | Определить ваш IP |
протокол сервера | HTTP/1.1 |
и получили с сервера с IP-адресом — 95.213.139.92
на ваш компьютер с IP — 3.239.51.78
страницу — 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, легко будет заменить на выбранное вами.
При обращении к любому сайту по имени - //www.имя-сайта.ru/, будет выведена индексная страница - index.html
В нём три подкаталога:
- logs (C:/www/docs/logs/)
- namesite.ru-access.log — пустой файл
- namesite.ru-error.log — пустой файл
- cgi-bin (C:/www/docs/cgi-bin/)
- namesite.ru (C:/www/docs/namesite.ru/)
- index.html — индексная страница сайта
- папки и файлы страниц сайта
- 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 - индексная (главная) страница сайта
- подкаталог 1
- logs
- 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 - индексная (главная) страница сайта
- подкаталог 1
- logs
- docs
- Каталоги и файлы OS Windows и других программ
- www
Внимание! Без внесения изменений в файл — 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
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 - образец) — по многолетней традиции, используются для примера и их необходимо изменить.
- виртуальные хосты на основе имени (более одного веб - сайта по IP - адресу)
- виртуальные хосты на основе IP (IP - адрес для каждого веб - сайта)
Возможен и смешанный вариант конфигурирования.
Виртуальные хосты основанные на адресе IP.
Первый шаг заключается в создании блока <VirtualHost> из комбинации адреса-IP и номера порта для каждого отдельного узла.
Пример — <VirtualHost 127.0.0.8:80> - привязывает виртуальные хосты к адресу -127.0.0.8 и 80-му порту:
namesite.ru — это имя (доменное имя) для разрабатываемого (тестируемого, отлаживаемого) сайта. Которое, после настройки веб-сервера Apache, можете заменить на выбранное вами.
Поэтому, в секциях - <VirtualHost *:80> вместо символа " * " нужно указать IP-адрес из из указанного диапазона.
Для обращения к вашему сайту по доменному имени, например - namesite.ru, нужно, в файле конфигурации httpd-vhosts.conf, создать секцию <VirtualHost>. В директивах которой указать пути к каталогу, подкаталогам и файлам вашего сайта.
Сайты виртуальных хостов конфигурируются в файлах httpd-vhosts.conf и httpd-userdir.conf.
Внесите изменения в файл httpd-vhosts.conf, как показано ниже.
Все записи, за исключением выделенных красным цветом, должны быть закомментированы. Строки начинающиеся с символа '#' - это комментарии.
Для проверки файлов конфигурации на синтаксические ошибки, используется команда — 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>