В этом руководстве мы расскажем, как настроить виртуальные хосты Apache в Debian 9.
Виртуальные хосты Apache позволяют размещать более одного домена на одной машине. При использовании виртуальных хостов вы можете указать другой корень документа (каталог, содержащий файлы веб-сайта) для каждого домена или поддомена, создать отдельную политику безопасности, использовать разные сертификаты SSL и многое другое.
Хотя это руководство написано для Debian 9, те же шаги применимы для всех дистрибутивов на основе Debian.
Содержание
Подготовка
Прежде чем продолжить изучение этого руководства, убедитесь, что вы выполнили следующие предварительные требования:
- Иметь доменное имя, указывающее на IP-адрес вашего сервера. В этом руководстве мы будем использовать
example.com
. - Установите Apache на свой сервер Debian .
- Вы вошли в систему как пользователь с привилегиями sudo .
Создайте структуру каталогов
Корневой каталог документа — это каталог, в котором файлы веб-сайта для доменного имени хранятся и обслуживаются в ответ на запросы. Вы можете установить корень документа в любое желаемое место. В этом руководстве мы будем использовать следующую структуру каталогов:
/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
внутри корневого каталога документов домена, который будет отображаться при посещении домена в браузере.
Откройте ваш любимый текстовый редактор, создайте новый файл и вставьте в него следующее:
<!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
.
Откройте нужный текстовый редактор и создайте следующий базовый файл конфигурации виртуального хоста:
<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. Вы можете повторить те же шаги, чтобы создать дополнительные виртуальные хосты для других ваших доменов.
Если вы столкнулись с какой-либо проблемой, не стесняйтесь оставлять комментарий.
Этот пост является частью серии «Как установить LAMP Stack в Debian 9». Другие сообщения из этой серии: