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

project author

Если Вам понравился данный материал, поделитесь им с вашими друзьями в соц сетях


Основная цель материалов данного раздела заключается в развертывании локального веб-сервера Apache для дальнейшей разработки динамичных сайтов, т.е. сайтов, использующих в своей работе скрипты языков программирования, подключения к базам данных, и других функциональных возможностях, предоставляемыми внешними модулями.

В предыдущих материалах были описаны установка и запуск локального веб-сервер Apache на ОС Microsoft Windows 7, подключение к веб-серверу модуля языка программирования PHP, СУБД (система управления базами данных) MySQL и веб-приложения phpMyAdmin представляющее собой веб-интерфейс для администрирования СУБД MySQL.

 

Что такое виртуальные хосты?

Термин виртуальный хост относится к практике размещения более чем одного веб-сайта на одном веб-сервере.

Веб-сервер Apache имеет встроенный механизм виртуальных хостов. Используя данный механизм мы имеем возможность располагать на одном веб-сервере несколько веб-сайтов, указывать для каждого из них собственные настройки ядра и модулей, ограничить доступ ко всему сайту или отдельным файлам.

Имея механизм виртуальных хостов, на мой взгляд, да и как показывает практика разработки веб-сайтов, было бы не правильно его не использовать.

механизм виртуальных хостов

механизм виртуальных хостов

 

Доменное имя (название сайта)

В глобальной сети интернет располагается огромное количество сайтов. Все они имеют свои имена, эти имена называются — доменом.

Доменное имя (название сайта) — определенная буквенная последовательность, обозначающая имя сайта или используемая в именах электронных почтовых ящиков. Промежуточными символами в доменом имени могут быть буквы латинского алфавита, цифры или дефис.

Рассмотрим структуру доменного имени. Например у доменного имени demo.resource-gsv.ru есть три части разделенные точками:

  • ru — доменное имя 1 уровня;
  • resource-gsv.ru — доменное имя 2 уровня (домен второго уровня в зоне ru);
  • demo.resource-gsv.ru — доменное имя 3 уровня (домен третьего уровня в зоне resource-gsv.ru).

 

Создание директории для нового сайта

После того как Вы настроите свой веб-сервер для разработки сайтов должным образом, можно приступить к их созданию. Все Ваши текущие и будущие сайты должны распологаться на веб-сервере в директории "C:\Apache24\htdocs". За данную настройку отвечает директива DocumentRoot в конфигурационном файле "C:\Apache24\conf\httpd.conf".

DocumentRoot "C:/Apache24/htdocs"

значение директивы "DocumentRoot" назначает корневую директорию управления сайтами

(Хотя расположение сайтов в указаной выше директории не совсем обязательно, но на текущий момент мы не будем усложнять конструкцию веб-сервера).

Давайте вспомнил как мы установили веб-приложение phpMyAdmin в материале Установка phpMyAdmin. Мы скопировали директорию со всеми файлами веб-приложения в корневую директорию управления сайтами "C:\Apache24\htdocs" и переименовали ее в "phpmyadmin". Для обращения к phpMyAdmin мы открыли в браузере страницу http://localhost/phpmyadmin или страницу http://localhost/phpmyadmin/index.php.

Теперь создадим новый сайт.

Для этого, в "C:\Apache24\htdocs" создадим новую директорию, к примеру "site", и в созданной директории "site" создадим файл "index.php" со следующим содержимым:

<?php printf("Is site"); ?>

содержимое файла "index.php" сайта "site"

Открываем наш новый сайт в браузере по адресу http://localhost/site и видим строку "Is test".

Таким образом на своем локальном веб-сервере Вы имеете возможность создавать неограниченное количество сайтов и работать с ними.

 

Настройка виртуального хоста для сайта

Имея механизм виртуальных хостов, было бы не правильно не использовать их!

При создании и настройки виртуального хоста для веб-сайта я предлагаю использовать:

  • доменное имя 2 уровня (к примеру "site")
  • в доменной зоне 1 уровня (к примеру "site.loc"). В нашем случае, в случае разработкой веб-сайтов на локальном веб-сервере, более предпочтительнее использовать следующие доменные имена 1 уровня: "home", "local" или "loc"

Если Вам стало непонятно изложенное мною выше, то думаю на практике Вы все поймете...

Перейдем к практике создания виртуального хоста.

Откройте корневую директорию управления сайтами "C:\Apache24\htdocs". Создайте в ней директорию "site.loc" или измените имя ранее созданой директории "site". Расположите в новой директории индексный файл "index.php" если он отсутствует.

Теперь наш веб-сайт можно открыть в браузере по адресу http://localhost/site.loc. Но использую механизм виртуальных хостов мы сможем открывать веб-сайт использую в браузере доменное имя http://site.loc. Для этого необходимо произвести изменения в конфигурационных файлах веб-сервера Apache.

Первым делом необходимо сообщить веб-серверу Apache что бы он подключил конфигурационный файл отвечающий за виртуальные хосты. Для этого открываем главный конфигурационный файл "C:\Apache24\conf\httpd.conf" и раскомментируем следующюю строку:

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

раскомментировав строку "Include conf/extra/httpd-vhosts.conf" мы сообщаем веб-серверу, что он должен использовать конфигурационный файл виртуальных хостов, файл "C:\Apache24\conf\extra\httpd-vhosts.conf"

Так же обязательно раскомментируйте строку с подключением модуля "mod_log_config.so", в том случае если она закомментирована.

LoadModule log_config_module modules/mod_log_config.so

Теперь открываем конфигурационный файл c настройкой виртуальных хостов "C:\Apache24\conf\extra\httpd-vhosts.conf". В данном файле уже прописаны примеры создания отдельных хостов. Мы можем смело взять их за основу при создании своего нового виртуального хоста.

Обращаю Ваше внимание на то, что первым делом нам необходимо создать виртуальный хост для корневой директории управления сайтами "C:\Apache24\htdocs", который будет повторять конфигурацию главного хоста "localhost". Данная настройка должна быть выше всех в будущем созданных виртуальных хостов.

виртуальный хост для корневой директории управления сайтами "localhost"

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "C:\Apache24\htdocs"
    ServerName localhost
    ErrorLog "logs\localhost.error.log"
    CustomLog "logs\localhost.access.log" common
</VirtualHost>

ServerAdmin — Email адрес администратора
DocumentRoot — корневая директория
ServerName — имя, которое используется сервером для идентификации себя, к примеру при обращении в адресной строке браузера
ErrorLog — расположение файла журнала ошибок
CustomLog — расположение файла журнала обращений

Теперь создаем виртуальных хост для веб-сайта "site.loc". Для этого ниже добавляем следующие строки:

виртуальных хост для веб-сайта "site.loc"

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "C:\Apache24\htdocs\site.loc"
    ServerName site.loc
    ServerAlias site.loc
    ErrorLog "logs\site.loc.error.log"
    CustomLog "logs\site.loc.access.log" common
    <Directory "C:\Apache24\htdocs\site.loc">
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Убедитесь, что все введенные Вами пути существуют и указаны корректно. так как после любых изменений в конфигурационных файлах Apache необходимо выполнить перезагрузку веб-сервер, выполните ее.

Осталось выполнить еще одно действие. Дело в том, что если мы попытаемся открыть наш сайт по адресу http://site.loc, то браузер попытается найти данное доменое имя в глобальной сети интернет, но нам надо открыть его локально, используя наш локальный веб-сервер. Для изменения данного поведения нам необходимо отредактировать файл "C:\Windows\System32\drivers\etc\hosts", добавив в него строку:

127.0.0.1 site.loc
или
127.0.0.1 site.loc www.site.loc

 

hosts

hosts — текстовый файл, содержащий базу данных доменных имен и используемый при их трансляции в сетевые адреса узлов. Запрос к этому файлу имеет приоритет перед обращением к DNS-серверам. В отличие от DNS, содержимое файла контролируется администратором компьютера.


  Теги: Apache