Как настраивать виртуальные хосты в Apache 2

В этой статье написано, как создавать несколько виртуальных хостов на локальной машине. Данное действие необходимо уметь делать веб-мастерам, когда онb разрабатывают несколько сайтов.

Вначале небольшое объяснение.

Что такое виртуальный хост? Это такая настройка локального веб-сервера, при которой веб-сервер начинает откликаться на заданное имя, а не только на IP 127.0.0.1 или псевдоним localhost. То есть, при настройке виртуального хоста на имя site.ru, в браузере по этому URL начнет отвечать локальный веб-сервер.

Веб-сервер можно настроить на несколько имен сайтов. Тогда веб-сервер начнет выдавать страницы, соответсвующие каталогу, в котором находятся данные для указанного имени. Например, есть два виртуальных хоста — site.ru и money.com. Для site.ru настроен рабочий каталог /var/www/site, а для money.com настроен рабочий каталог /var/www/money.com. Если теперь в браузере обратиться к site.ru, то веб-сервер будет выдавать страницы из каталога /var/www/site.ru, а если обратиться к money.com, то веб-сервер будет генерировать страницы из каталога /var/www/money.com. Как сделать такую настройку и написано в данной статье.

В Ubuntu 12/04, сервер Apache-2 сразу после установки готов работать с виртуальными хостами. Но настроен только на один (default) хост, который доступен как localhost. Чтобы добавить еще один виртуальный хост, надо сделать следущее:

1. В каталог /etc/apache2/sites-available нужно добавить пустой файл с произвольным именем. Для удобства, лучше давать имя файла, содержащее имя виртуального хоста. Например, если планируется добавить виртуальный хост с именем site.ru, надо задатьдать имя файла site.ru.conf.

2. В этот файл надо вписать (примерно) следующее:

 Где:

  • ServerName, ServerAlias — это URL, набираемый в браузере, на который должен откликаться данный виртуальный хост;
  • DocumentRoot — это корневая директория данного виртуального хоста;
  • Секция Directory — настройка прав доступа к указанной директории. В данном случае настраиваются права доступа к корневой директории виртуального хоста.

Нужно обратить внимание на параметр секции VirtualHost. Здесь он написан как «*:80». Но обязательно нужно заглянуть в файл /etc/apache2/sites-available/default и посмотреть, какой параметр написан там в такой же секции VirtualHost. Если написано «*», то в нашем файле надо так же написать «*».

Другоми словами, нужно заглянуть в файл /etc/apache2/ports.conf. Там нужно найти директиву:

Какое значение стоит в этой директиве (здесь — «*:80»), такое значение и нужно прописать в качестве параметра секции VirtualHost во всех файлах директории /etc/apache2/sites-available, иначе хосты видны не будут.

Частая ошибка — когда в /etc/apache2/ports.conf прописано «*.80», а в файле хоста в секции VirtualHost прописано «*». Несмотря на то, что маска «*» покрывает маску «*.80», сервер Apache не понимает такой записи. При такой настройке, сервер Apache не найдет нужного хоста!

3. Надо перейти в каталог /etc/apache2/sites-enabled и создать там символическую ссылку на созданный нами файл:

4. Необходимо перезапустить Apache командами:

в момент перезапуска надо смотреть, не появляются ли в консоли сообщения об ошибках или предупреждения. В нормально сконфигурированном Апаче никаких сообщений о ошибках (и даже предупреждений!) выдаваться не должно.

5. Завершающее действие — нужно открыть файл /etc/hosts и прописать там новую строку следующего содержания:

это позволит браузеру обращаться локально к Апачу, а не искать данный сайт в интернете.

Все, конфигурирование закончено. Никаких перезагрузок не требуется.

Можно в браузере набрать URL http://site.ru/index.html, и должен открыться файл /var/www/site.ru/index.html (если он есть). Таким образом, сразу видно, что виртуальный хост создался, и отображается в браузере. Подобным образом добавляются и другие виртуальные хосты.


Вы можете оставить комментарий, или ссылку на Ваш сайт.