Изучая конфигурацию виртуального хоста /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>

В этом примере используются следующие директивы:

  1. ServerName — указывает имя доменного имени, для которого будет работать виртуальный хост (в данном случае example.com).
  2. ServerAdmin — определяет администратора сайта, который получит письма по электронной почте при возникновении проблем с веб-сайтом.
  3. DocumentRoot — указывает директорию, содержащую HTML-документы и другие файлы для отображения на сайте (в данном случае /var/www/html/example.com).
  4. ErrorLog и CustomLog — указывают логгирование ошибок и статистики соответственно, которые будут храниться в директории ${APACHE_LOG_DIR} (обычно /var/log/apache2).
  5. <Directory> — блок директив для управления доступом к определенной папке и всем подпапкам, которые находятся внутри нее. В данном случае установлено несколько опций поведения Apache для этой директории: Options Indexes FollowSymLinks MultiViews, AllowOverride All (разрешает переопределять стандартные настройки через .htaccess) и Require all granted (открывает доступ к папке всем).

Для работы с указанной конфигурацией необходимо, чтобы были установлены следующие модули Apache:

  1. mod_virtualhost — для создания виртуальных хостов;
  2. mod_dir и mod_autoindex — для работы с директориями и индексами по умолчанию (Indexes);
  3. mod_log_config — для настройки логов Apache;
  4. mod_alias — для создания символических ссылок в контексте директорий и файлов;
  5. mod_mime или mod_mime_magic — для определения типов MIME-файлов;
  6. mod_userdir (необязательно) — если требуется разрешить пользователям создавать свои собственные веб-сайты в директориях по умолчанию для каждого пользователя.

От alex

Обучаемый.