Структура каталогов Apache по умолчанию

После установки Apache в большинстве Unix-подобных систем структура каталогов по умолчанию будет выглядеть примерно так:

/etc/apache2/
|-- apache2.conf
|-- conf-available/
|-- conf-enabled/
|-- mods-available/
|-- mods-enabled/
|-- sites-available/
|-- sites-enabled/
|-- envvars
|-- magic
|-- ports.conf
| -- sites-available/
    |-- default
| -- sites-enabled/
    |-- 000-default.conf

Это стандартная структура файлов для Apache в системе Debian/Ubuntu; в других дистрибутивах точная структура или путь могут отличаться.

Давайте разберем ключевые каталоги и файлы:

  • /etc/apache2/ – Основной каталог конфигурации.
  • apache2.conf – Глобальный файл конфигурации.
  • conf-available/ и conf-enabled/ – хранит дополнительные файлы конфигурации.
  • mods-available/ и mods-enabled/ – Содержит модули, которые можно включать и отключать.
  • sites-available/ & sites-enabled/ – Содержит конфигурацию для отдельных веб-сайтов.
  • envvars – Файл, который задает переменные среды для сервера.
  • magic – Файл, используемый для определения типа MIME файлов.
  • ports.conf – Настраивает прослушиваемые порты.

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

apache2.conf: Это основной файл конфигурации Apache. Он устанавливает значения по умолчанию для веб-сервиса и часто сопровождается другими фрагментами конфигурации, которые обрабатывают определенные задачи.

conf-available/ & -enabled: Администраторы или сопровождающие пакетов могут предоставить здесь дополнительные конфигурации, которые сопровождающие сайта могут включить по мере необходимости. Их включение обычно осуществляется через символические ссылки.

mods-available/ & -enabled: Аналогично ‘conf’, но для файлов модов. Вы включаете и отключаете модули с помощью команд ‘a2enmod’/‘a2dismod’.

sites-available/ & -enabled: Здесь вы размещаете файлы «виртуального хоста», которые определяют различные веб-сайты, размещенные на сервере. Они включаются с помощью команд «a2ensite»/«a2dissite».

Пример включения конфигурации:

sudo a2enmod rewrite
sudo systemctl restart apache2

Добавление нового сайта

Чтобы разместить новый сайт, вам нужно будет действовать в каталоге «sites-available». Вот базовый поток того, как настроить новый сайт:

  1. Создайте новый файл конфигурации в /etc/apache2/sites-available/, например, «my-site.conf».
  2. Определите свой блок в этом файле конфигурации.
  3. Поместите файлы вашего сайта в правильный каталог DocumentRoot.
  4. Включите сайт с помощью команды «a2ensite my-site».
  5. Перезагрузите Apache с помощью команды «sudo systemctl reload apache2», чтобы изменения вступили в силу. Пример файла конфигурации:
<VirtualHost *:80>
ServerAdmin webmaster@my-site.com
ServerName my-site.com
ServerAlias www.my-site.com
DocumentRoot /var/www/my-site
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Помните: Все сайты должны прослушивать порт номер. Эта конфигурация прослушивает порт 80, порт по умолчанию для HTTP.

Расширенные конфигурации

В более сложном сценарии вы можете настраивать SSL, создавать перезаписи, настраивать защиту каталогов или управлять параметрами производительности. Вот как вы можете настроить SSL для своего сайта:

<VirtualHost *:443>
ServerName my-site.com
SSLEngine on
SSLCertificateFile '/path/to/cert.crt'
SSLCertificateKeyFile '/path/to/private.key'
DocumentRoot /var/www/my-site
Include /etc/apache2/conf-available/ssl-params.conf
</VirtualHost>

Чтобы улучшить производительность вашего сервера Apache, вы можете отредактировать глобальную конфигурацию, чтобы настроить модуль «mpm_prefork», например так:

<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 3000
</IfModule>

Журналы

Большинство установок Apache по умолчанию регистрируют в /var/log/apache2/. Внутри вы найдете ‘access.log’ и ’error.log’, на которые будут ссылаться ваши определения VirtualHost для отдельных сайтов. Правильное ведение журнала имеет решающее значение для мониторинга и отладки.

Заключение

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