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

Published by 2 Comments

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

Виртуальный хост (Virtual Host) используется для запуска нескольких доменов на одном IP-адресе. Такие хосты в первую очередь необходимы пользователям, которые запускают несколько сайтов на одном виртуальном выделенном сервере. Каждый виртуальный хост отображает разную информацию в зависимости от того, какой из сайтов, размещенных на этом сервере, открывает посетитель. На один VPS можно добавить неограниченное количество виртуальных хостов.

Что значит красный?

Строки, которые нужно отредактировать или ввести самостоятельно, выделены красным. Остальной код можно просто скопировать и вставить.

Требования

Для выполнения данного руководства потребуются root-привилегии. Чтобы получить дополнительную информацию о таких привилегиях, читайте данную статью.

Кроме того, нужно предварительно установить и настроить веб-сервер Apache. Для быстрой установки используйте команду:

sudo apt-get install apache2

1: Создание нового каталога

Для начала нужно создать каталог для хранения данных нового сайта. Это – так называемый root-каталог (раздел Document Root в файле конфигурации Apache). При помощи флага -p нижеприведенная команда автоматически создаст все каталоги высшего порядка для нового каталога.

В команде нужно указать доменное имя или IP-адрес сервера. В данном руководстве в качестве заполнителя домена используется example.com.

sudo mkdir -p /var/www/example.com/public_html

Примечание: чтобы использовать неутвержденное доменное имя для проверки работы хоста, обратитесь к разделу 7, который содержит инструкции по запуску хостов на локальном компьютере.

2: Привилегии

Теперь нужно передать привилегии на каталог пользователю:

sudo chown -R $USER:$USER /var/www/example.com/public_html

Кроме того, нужно убедиться, что все имеют право на чтение данного каталога:

sudo chmod -R 755 /var/www

Готово! Теперь привилегии установлены верно.

3: Создание страницы

В конфигурационном каталоге создайте файл по имени index.html

sudo nano /var/www/example.com/public_html/index.html

В этот файл необходимо добавить текст, чтобы при переходе на IP/домен на странице отображался некоторый контент.

<html>
<head>
<title>www.example.com</title>
</head>
<body>
<h1>Success: You Have Set Up a Virtual Host</h1>
</body>
</html>

Сохраните и закройте файл.

4: Создание виртуального хоста

Далее нужно создать файл виртуального хоста. Для этого скопируйте следующий файл (назвав его именем домена) в тот же каталог:

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/example.com

5: Активация виртуального хоста

Откройте новый конфигурационный файл:

sudo nano /etc/apache2/sites-available/example.com

Этот файл и будет служить виртуальным хостом.

Для начала внесите строку ServerName под строкой ServerAdmin:

ServerName example.com

Строка ServerName задает доменное имя, ассоциируемое с виртуальным хостом.

Чтобы сайт был доступен по нескольким именам (например, с www в начале URL-адреса), нужно указать альтернативные имена в файле виртуального хоста, добавив строку ServerAlias. Итак, начало файла виртуального хоста будет выглядеть так:

<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
[...]

Затем нужно указать правильный Document Root, внеся расширение нового каталога, созданного в первом разделе руководства. Если Document Root указан неверно или отсутствует, настроить виртуальный хост будет невозможно.

Данный раздел файла должен выглядеть так:

DocumentRoot /var/www/example.com/public_html

Больше никаких изменений вносить в этот файл не нужно. Сохраните и закройте его.

Теперь осталось только активировать хост при помощи встроенной сокращенной команды:

sudo a2ensite example.com

6: Перезапуск Apache

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

sudo service apache2 restart

7: Настройка локальных хостов (дополнительно)

Пропустите этот шаг, если вы направили доменное имя на IP-адрес виртуального выделенного сервера – устанавливать локальные хосты вам не понадобится, виртуальные хосты будут работать и без этого. Тем не менее, чтобы протестировать работу новых виртуальных хостов, не подключаясь при этом к домену, можно настроить на компьютере локальные хосты.

Примечание: убедитесь, что вы перешли с сервера на локальную машину, прежде чем начать выполнять действия, описанные в данном разделе.

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

В системах Mac или Linux войдите как пользователь root (su) и откройте файл hosts:

nano /etc/hosts

Пользователи Windows могут найти все инструкции на сайте Microsoft.

В этот файл можно внести все данные локальных хостов, как показано в примере ниже. Пока выделенная красным строка находится в этом файле, example.com будет выводить всю информацию виртуальных хостов соответствующего IP-адреса.

# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
#Virtual Hosts
12.34.56.789    example.com

Примечание: во избежание возможной путаницы составленные адреса рекомендуется удалить из папки локальных хостов сразу после выполнения проверки.

8: Результаты

Завершив настройку виртуального хоста, проверьте, как он выглядит в сети. Для этого введите в браузер свой ip в формате http://12.34.56.789:

Готово! Чтобы добавить больше виртуальных хостов, просто повторите весь описанный выше процесс, создав новый document root с соответствующим доменным именем.

Читайте также

Настроив виртуальные хосты, можно приступать к созданию SSL-сертификата или установке FTP-сервера.

Tags: , , , ,

Комментарии (2)

  • Сергей:

    Автор, спасибо за мануал, но ты сам-то настраивал по нему?! В четвертом пункте конфигурационный файл ОБЯЗАТЕЛЬНО должен заканчиваться на «.conf» в противном случае утилита a2ensite не отработает!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>