Устранение неполадок установки и настройки Apache
Linux, VPS | Комментировать запись
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, ознакомьтесь со следующими руководствами:
- Установка стека LAMP в Ubuntu 16.04
- Перемещение корневого каталога Apache в Ubuntu 16.04
- Создание сертификата Let’s Encrypt для Apache в Ubuntu 16.04
- Использование файла .htaccess
- Перезапись URL-адресов на Apache в Ubuntu 16.04
- Настройка Apache как обратного прокси-сервера с помощью mod_proxy в Ubuntu 16.04