MyTetra Share
Делитесь знаниями!
Как настраивать виртуальные хосты в Apache 2
Время создания: 13.04.2010 13:19
Автор: Xintrea
Раздел: Компьютер - Linux - Сеть в Linux - Apache
Запись: xintrea/mytetra_syncro/master/base/0000001491/text.html на raw.github.com

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

В Debian 5.0.4 сервер Apache-2 сразу после установки готов работать с виртуальными хостами. Но настроен только на один (default) хост.

Чтобы добавить еще один виртуальный хост, надо сделать следущее:

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

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования