Собираем
информацию
по крупицам
Статьи - Компьютерное

Linux: как перестать удивляться, и начать работать

Как настраивать виртуальные хосты в Apache 2
07-06-2010
22:42:36

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

 

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

 

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

 

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

 

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

 

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

 

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

 

<VirtualHost *:80>

 ServerName studio.ru
 ServerAlias www.studio.ru

 DocumentRoot "/var/www/studio"

 <Directory "/var/www/studio">
  allow from all
  Options +Indexes
 </Directory>

</VirtualHost>

 

Где:

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

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

 

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

 

NameVirtualHost *:80


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

 

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

 

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

 

# cd /etc/apache2/sites-enabled
# ln -s /etc/apache2/sites-available/studio.ru.conf studio.ru.conf

 

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

 

# /etc/init.d/apache2 stop
Stopping web server: apache2 ... waiting .

# /etc/init.d/apache2 start
Starting web server: apache2.


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

 

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

 

127.0.0.1 studio.ru

 

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

 

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


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



К списку "Компьютерное"

Поделиться этой страницей


Виртуальный хостинг в SpaceWeb бесплатно на 14 дней

Статистика


RSS подписка

Подпишитесь на новости сайта по RSS


 WebHamster.Ru
 Домик любопытного хомячка
Яндекс индекс цитирования
Почтовый ящик