Изучая конфигурацию виртуального хоста /etc/apache2/sites-available/site.conf, мы можем заметить, что она состоит из разделов (секций), каждая из которых определяет набор директив для конкретной части работы веб-сервера Apache.
Пример конфигурации виртуального хоста site.conf может выглядеть следующим образом:
<VirtualHost *:80>
ServerName example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/html/example.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/example.com>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
В этом примере используются следующие директивы:
ServerName— указывает имя доменного имени, для которого будет работать виртуальный хост (в данном случае example.com).ServerAdmin— определяет администратора сайта, который получит письма по электронной почте при возникновении проблем с веб-сайтом.DocumentRoot— указывает директорию, содержащую HTML-документы и другие файлы для отображения на сайте (в данном случае /var/www/html/example.com).ErrorLogиCustomLog— указывают логгирование ошибок и статистики соответственно, которые будут храниться в директории ${APACHE_LOG_DIR} (обычно /var/log/apache2).<Directory>— блок директив для управления доступом к определенной папке и всем подпапкам, которые находятся внутри нее. В данном случае установлено несколько опций поведения Apache для этой директории:Options Indexes FollowSymLinks MultiViews,AllowOverride All(разрешает переопределять стандартные настройки через .htaccess) иRequire all granted(открывает доступ к папке всем).
Для работы с указанной конфигурацией необходимо, чтобы были установлены следующие модули Apache:
mod_virtualhost— для создания виртуальных хостов;mod_dirиmod_autoindex— для работы с директориями и индексами по умолчанию (Indexes);mod_log_config— для настройки логов Apache;mod_alias— для создания символических ссылок в контексте директорий и файлов;mod_mimeилиmod_mime_magic— для определения типов MIME-файлов;mod_userdir(необязательно) — если требуется разрешить пользователям создавать свои собственные веб-сайты в директориях по умолчанию для каждого пользователя.