Устранение неполадок установки и настройки Apache

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

Примечание: Мануал предназначен для пользователей, которые работают с Apache в Ubuntu. Если вы используете CentOS или другой дистрибутив RHEL, обратитесь к мануалу Установка LAMP stack на CentOS 7.

Каждый раздел может использоваться независимо от других, поэтому вы можете пропустить разделы, которые вам не нужны. Все условные значения в командах выделены красным; вместо этих значений вы можете подставить свои данные.

Каждый раздел предлагает ссылки на другие руководства, с которыми можно проконсультироваться.

Установка Apache

Чтобы установить сервис Apache, обновите индекс пакетов и запустите следующую команду:

sudo apt-get update
sudo apt-get install apache2

Читайте также: Установка веб-сервера Apache в Ubuntu 16.04

Автозагрузка Apache

Сервис Apache запускается автоматически. Если вы хотите изменить это поведение, введите:

sudo systemctl disable apache2.service

Чтобы снова добавить Apache в автозагрузку, введите:

sudo systemctl enable apache2.service

Управление сервисом Apache

Чтобы остановить сервер Apache, введите следующую команду:

sudo systemctl stop apache2

Чтобы запустить сервер Apache, введите:

sudo systemctl start apache2

Чтобы остановить сервис и запустить его снова, введите:

sudo systemctl restart apache2

Если вы изменили конфигурацию, вы можете перезагрузить Apache в текущей сессии. Введите следующую команду:

sudo systemctl reload apache2

Читайте также: Основы Systemd: управление сервисами и журналирование

Проверка состояния Apache

Чтобы проверить состояние Apache, введите команду:

sudo systemctl status apache2

Эта команда сообщит, работает ли Apache и покажет вам последние несколько строк логов.

Создание корневого каталога для статического сайта

При создании сайтов на Apache разработчики часто используют виртуальные хосты – это хосты, которые обслуживают отдельные сайты или домены. Для этого нужно создать document root, каталог верхнего уровня, который Apache проверяет при обслуживании контента.

sudo mkdir -p /var/www/example.com/public_html

Передайте права на каталог пользователю с доступом к sudo.

sudo chown -R $USER:$USER /var/www/example.com/public_html

Предоставьте остальным пользователям права на чтение контента:

find /var/www -type d -exec chmod 775 {} \;

Читайте также: Привилегии в Linux: что это и как с этим работать

Помните, что права доступа должны меняться в соответствии с ситуацией.

Создание корневого каталога для динамических файлов

Если ваш сайт использует динамические модули типа PHP, создайте каталог document root для этих файлов:

sudo mkdir -p /var/www/example.com/public_html

Передайте права на каталог пользователю sudo и группе www-data:

sudo chown -R 8host:www-data /var/www/example.com/public_html

Изменение конфигурации

При работе с виртуальными хостами необходимо изменить параметры конфигурации и добавить данные о домене, чтобы сервер Apache мог правильно реагировать на запросы.

Откройте файл виртуального хоста:

sudo nano /etc/apache2/sites-available/example.com.conf

Измените следующие строки:

ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html

После изменения файл будет выглядеть так:

<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Прежде чем сохранить файл, убедитесь, что в директивах нет ошибок.

Читайте также: Настройка виртуальных хостов Apache в Ubuntu 16.04

Включение и отключение конфигурационных файлов

Виртуальные хосты

Чтобы включить виртуальный хост, введите:

sudo a2ensite example.com.conf

Чтобы отключить конфигурационный файл (в данном примере это стандартный виртуальный хост):

sudo a2dissite 000-default.conf

Модули

Чтобы включить модули из каталога /etc/apache2/mods-available, введите:

sudo a2enmod example_mod

Чтобы отключить конкретный модуль:

sudo a2dismod example_mod

Конфигурационные файлы

Чтобы включить конфигурационные файлы из каталога /etc/apache2/conf-available (файлы, не связанные с виртуальными хостами), введите:

sudo a2enconf example-conf

Чтобы отключить файл, введите:

sudo a2disconf example-conf

Тестирование конфигурации

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

sudo apache2ctl configtest

Важные файлы и каталоги Apache

Контент

Каталог /var/www/html хранит весь контент сайта (это корневой каталог сайта). Вы можете изменить стандартные настройки Apache и указать другие каталоги в var/www.

Конфигурация сервера

  • /etc/apache2: конфигурационный каталог Apache (здесь хранятся все конфигурационные файлы веб-сервера).
  • /etc/apache2/apache2.conf: главный конфигурационный файл веб-сервера, в котором находятся все глобальные параметры. Все остальные файлы загружаются через этот файл. Также тут хранятся директивы FollowSymLinks, которые отвечают за включение и отключение конфигурационных файлов.
  • /etc/apache2/sites-available/: здесь находятся все виртуальные хосты (в том числе и отключенные). В этом каталоге происходят все изменения в настройке виртуального хоста. Эти файлы включаются с помощью команды a2ensite.
  • /etc/apache2/sites-enabled/: здесь хранятся файлы включенных виртуальных хостов. При запуске или перезагрузке Apache читает конфигурационные файлы и ссылки в этом каталоге, чтобы собрать полную конфигурацию.
  • /etc/apache2/conf-available и /etc/apache2/conf-enabled: работают по тому же принципу, что и sites-available и sites-enabled. Эти каталоги предназначены для хранения фрагментов конфигурации, которые не входят в виртуальные хосты.
  • /etc/apache2/mods-available и /etc/apache2/mods-enabled: эти каталоги работают аналогичным образом. Они предназначены для хранения модулей. В них находятся файлы двух типов: файлы с расширением .load загружают модули, а файлы .conf хранят их конфигурации.

Логи

  • /var/log/apache2/access.log – это лог, который регистрирует все запросы Apache (если в конфигурации веб-сервера не сказано другого).
  • /var/log/apache2/error.log – это лог ошибок. Настроить уровень логирования можно с помощью параметра LogLevel в /etc/apache2/apache2.conf.

Другой способ доступа к информации о компонентах Apache – через journald. Этот инструмент собирает информацию логов приложений и ядра. Чтобы просмотреть записи для модуля Apache, введите:

sudo journalctl -u apache2

Заключение

Данный мануал перечислил общие процедуры по поддержке сервера Apache. Чтобы узнать больше о работе с Apache, ознакомьтесь со следующими руководствами:

Tags: