Структура каталогов 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». Вот базовый поток того, как настроить новый сайт:
- Создайте новый файл конфигурации в /etc/apache2/sites-available/, например, «my-site.conf».
- Определите свой блок в этом файле конфигурации.
- Поместите файлы вашего сайта в правильный каталог DocumentRoot.
- Включите сайт с помощью команды «a2ensite my-site».
- Перезагрузите 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 должна стать менее пугающей и более интуитивной.