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

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 (если он есть). Таким образом, сразу видно, что виртуальный хост создался, и отображается в браузере. Подобным образом добавляются и другие виртуальные хосты.


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

Интересное на сайте


Демо на Ассемблере » Pluxx

Размер: 512 байт Требования: DOS 6.22 Год: 1999   Первый раз в первый класс. С этой интрой я первый раз пошел на демопатю ByteFall'99. Заняла 6-...


Flash-анимация » Анимированый логотип портала RockFM.ru

Оборудование: Pentium-200MMX, RAM 32Мб Среда: Xara X, Flash MX Год: 2002   Этот логотип я разработал для портала RockFM.ru. Задача стояла следую...


Скейтборд » Настоящая история скейтбординга. Часть 6: Как обстоят дела в России

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

RSS подписка

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

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


Статистика


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

Внимание!


На этом сайте разрабатывается программа MyTetra и её родственные проекты. Доступны к просмотру следующие базы знаний:

 

База Xintrea (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)

База Rarrugas (1, 2)

База Balas

База YellowRaven

База Yurons

База Lesnik757

База Shandor

База Sirrichar

База Anatolean

База Аrmagedec

База SorokinRed

База Deadelf79

База Fadk

 

Требуют доработки:

 

База Tairesh

База Ivnglkv

База Kolyag87

База Andyk101

База Garik456456

База Harpokrat

База SalexIzyh

База Duwaz

 

Подробности на странице MyTetra Share.

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