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

В этом руководстве мы расскажем, как настроить виртуальные хосты Apache в Debian 9.

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

Хотя это руководство написано для Debian 9, те же шаги применимы для всех дистрибутивов на основе Debian.

Подготовка

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

Создайте структуру каталогов

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

/var/www/
├── domain1.com
│   └── public_html
├── domain2.com
│   └── public_html
├── domain3.com
│   └── public_html

У каждого домена, размещенного на нашем сервере, будет корень документа /var/www/<domain_name>/public_html .

Начнем с создания корневого каталога документов для нашего первого домена example.com :

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

Мы также создадим файл index.html внутри корневого каталога документов домена, который будет отображаться при посещении домена в браузере.

Откройте ваш любимый текстовый редактор, создайте новый файл и вставьте в него следующее:

/var/www/example.com/public_html/index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to example.com</title>
  </head>
  <body>
    <h1>Success! example.com home page!</h1>
  </body>
</html>

Мы запускаем команды от имени пользователя sudo, а вновь созданные файлы и каталоги принадлежат пользователю root.

Чтобы избежать проблем с разрешениями, мы изменим владельца корневого каталога документов домена и всех файлов в этом каталоге на пользователя apache ( www-data ):

sudo chown -R www-data: /var/www/example.com

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

В системах Debian файлы конфигурации виртуальных хостов Apache расположены в каталоге /etc/apache2/sites-available и их можно включить, создав символические ссылки на каталог /etc/apache2/sites-enabled .

Откройте нужный текстовый редактор и создайте следующий базовый файл конфигурации виртуального хоста:

/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/example.com/public_html

    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
  • ServerName : домен, который должен соответствовать данной конфигурации виртуального хоста. Это должно быть ваше доменное имя.
  • ServerAlias : все другие домены или субдомены, которые также должны соответствовать этому виртуальному хосту, обычно субдомен www .
  • DocumentRoot : каталог, из которого Apache будет обслуживать файлы домена.
  • Options : эта директива определяет, какие функции сервера доступны в определенном каталоге.
    • -Indexes : предотвращает -Indexes каталогов.
    • FollowSymLinks : когда этот параметр включен, Apache будет следовать символическим ссылкам.
  • AllowOverride : указывает, какие директивы, объявленные в файле .htaccess могут переопределять директивы конфигурации.
  • ErrorLog , CustomLog : указывает расположение файлов журнала.

Вы можете назвать файл конфигурации виртуального хоста как хотите, но рекомендуется использовать доменное имя в качестве имени файла конфигурации.

Чтобы включить новый файл виртуального хоста, создайте символическую ссылку из файла виртуального хоста в каталог с поддержкой sites-enabled , который Apache читает во время запуска.

В системах Debian вы можете включить виртуальный хост с помощью вспомогательного скрипта с именем a2ensite :

sudo a2ensite example.com

Другой вариант — вручную создать символическую ссылку, как показано ниже:

sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/

После включения конфигурации проверьте правильность синтаксиса, набрав:

sudo apachectl configtest

Если ошибок нет, вы увидите следующий вывод:

Syntax OK

Перезапустите службу apache2 чтобы изменения вступили в силу:

sudo systemctl restart apache2

Чтобы убедиться, что все работает должным образом, откройте http://example.com в своем любимом браузере, и вы увидите что-то вроде этого:

Выводы

В этом руководстве вы узнали, как создать конфигурацию виртуального хоста Apache для размещения нескольких доменов на одном сервере Debian. Вы можете повторить те же шаги, чтобы создать дополнительные виртуальные хосты для других ваших доменов.

Если вы столкнулись с какой-либо проблемой, не стесняйтесь оставлять комментарий.

Оставьте комментарий