Установка и настройка Apache на Ubuntu 2026: пошаговое руководство | AdminWiki

Установка и настройка Apache на Ubuntu 2026: пошаговое руководство

10 августа 2026 8 мин. чтения

Подготовка системы и установка Apache

Развертывание веб-сервера Apache на Ubuntu начинается с подготовки операционной системы. Этот этап критичен: пропуск обновления индексов пакетов или игнорирование версии дистрибутива приводит к ошибкам зависимостей и неработоспособности сервера. Инструкция протестирована на Ubuntu 24.04 LTS и полностью совместима с будущими релизами 2026 года. Если вы настраиваете сервер для production-среды, рекомендую сразу ознакомиться с полным руководством по настройке Apache на Linux, где разобраны вопросы оптимизации под highload.

Проверка версии Ubuntu и обновление пакетов

Первое действие перед установкой любого ПО - проверка версии операционной системы. Команда lsb_release -a выводит детальную информацию о дистрибутиве, включая кодовое имя и номер релиза. Это снимает сомнение «подойдет ли моя версия?» и позволяет заранее выявить нестандартные конфигурации.

lsb_release -a

Вывод содержит строку Release с номером версии. Для Ubuntu 24.04 LTS это значение - 24.04. Если вы используете более старую версию, например 22.04 LTS, инструкция остается применимой: пакет apache2 доступен во всех поддерживаемых репозиториях. После проверки версии обновите индекс пакетов. Менеджер пакетов APT хранит локальный кэш метаданных о доступных программах и их зависимостях. Без синхронизации этого кэша с репозиториями система может попытаться установить устаревшую или несуществующую версию пакета.

sudo apt update

Вывод команды показывает количество пакетов, доступных для обновления. Если список не пуст, выполните sudo apt upgrade -y для установки актуальных версий уже имеющихся компонентов системы. Это предотвращает конфликты зависимостей на этапе установки Apache.

Установка Apache из репозитория

В экосистеме Ubuntu веб-сервер Apache распространяется под именем пакета apache2. Это официальный пакет из репозиториев дистрибутива, который проходит тестирование и подписан цифровой подписью Canonical. Установка одной командой:

sudo apt install apache2 -y

Флаг -y автоматически подтверждает согласие на установку, экономя время. В процессе APT загружает сам веб-сервер, набор основных модулей и утилиты управления. После завершения установки в системе появляется служба apache2, готовая к запуску.

Запуск и проверка статуса сервера

Пакет apache2 после установки автоматически запускает службу. Убедитесь в этом с помощью systemctl - основного инструмента управления службами в Ubuntu:

sudo systemctl status apache2

Корректный вывод содержит строку Active: active (running) и PID процесса. Это главный критерий успешной установки. Если статус отличается, запустите службу вручную:

sudo systemctl start apache2

Для автоматического старта Apache при загрузке сервера включите службу в автозагрузку:

sudo systemctl enable apache2

Команда создает символическую ссылку в директории /etc/systemd/system/, и systemd запускает Apache на этапе загрузки multi-user.target. Проверьте статус автозагрузки:

sudo systemctl is-enabled apache2

Вывод enabled подтверждает, что после перезагрузки сервер поднимется автоматически.

Настройка файрвола UFW для безопасной работы

Веб-сервер, слушающий порты 80 и 443, становится доступен из сети. Без настройки файрвола любой хост может взаимодействовать с этими портами, что увеличивает поверхность атаки. UFW (Uncomplicated Firewall) - стандартный интерфейс управления netfilter в Ubuntu, который решает задачу фильтрации трафика с минимальным синтаксисом.

Проверка статуса UFW и доступных профилей

UFW по умолчанию установлен, но часто неактивен. Проверьте текущий статус:

sudo ufw status

Если вывод показывает Status: inactive, файрвол выключен. Перед включением настройте правила, чтобы не заблокировать собственный SSH-доступ. Пакет apache2 при установке регистрирует в UFW три профиля, упрощающих настройку. Посмотрите их список:

sudo ufw app list

Вывод содержит:

  • Apache - открывает только порт 80 (HTTP).
  • Apache Secure - открывает только порт 443 (HTTPS).
  • Apache Full - открывает оба порта: 80 и 443.

Для полноценной работы веб-сервера с поддержкой HTTPS выбирайте профиль Apache Full.

Разрешение трафика для Apache

Примените профиль и проверьте правила:

sudo ufw allow 'Apache Full'
sudo ufw status verbose

Вывод покажет два правила: 80/tcp ALLOW IN Anywhere и 443/tcp ALLOW IN Anywhere. Если вы подключаетесь к серверу по SSH, добавьте правило для порта 22 перед активацией файрвола:

sudo ufw allow OpenSSH

Включите UFW:

sudo ufw enable

Система запросит подтверждение, так как активация файрвола может разорвать текущие соединения, если правила не настроены. После подтверждения UFW запускается и применяет все созданные правила. Проверьте финальный статус:

sudo ufw status verbose

Теперь порты 80 и 443 открыты для входящего трафика, а все остальные порты по умолчанию закрыты. Это базовая, но достаточная для начала конфигурация безопасности.

Создание и настройка первого виртуального хоста

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

Подготовка директории сайта и прав доступа

Каждый виртуальный хост указывает на директорию с файлами сайта через директиву DocumentRoot. Создайте структуру каталогов для домена example.com:

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

Флаг -p создает всю цепочку родительских директорий, если они отсутствуют. Теперь назначьте владельца. По умолчанию файлы, созданные через sudo, принадлежат пользователю root, что приводит к ошибкам 403 Forbidden при попытке Apache прочитать содержимое. Передайте владение текущему пользователю:

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

Переменная $USER подставляет имя текущего пользователя, а флаг -R применяет изменение рекурсивно ко всем вложенным файлам и папкам. Установите корректные права: владелец читает, пишет и выполняет; группа и остальные - только читают и выполняют:

sudo chmod -R 755 /var/www/example.com

Создайте тестовую страницу, чтобы убедиться в работоспособности хоста после настройки:

echo "" | sudo tee /var/www/example.com/html/index.html

Конфигурация виртуального хоста

Конфигурационные файлы виртуальных хостов хранятся в /etc/apache2/sites-available/. Скопируйте шаблон по умолчанию как основу для нового хоста:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf

Откройте файл в редакторе:

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

Приведите содержимое к следующему виду:


    ServerAdmin webmaster@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/html

    ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
    CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined

    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    

Разбор ключевых директив:

  • VirtualHost *:80 - хост слушает порт 80 на всех IP-адресах сервера.
  • ServerName - основное доменное имя сайта.
  • ServerAlias - альтернативные имена (например, с www), которые обрабатываются этим же хостом.
  • DocumentRoot - путь к директории с файлами сайта.
  • ErrorLog и CustomLog - отдельные файлы логов для этого хоста, что упрощает диагностику.
  • Directory - блок правил доступа к файловой системе. AllowOverride All разрешает использование .htaccess, Require all granted открывает доступ всем запросам.

Активация хоста и перезапуск Apache

Файл в sites-available - это лишь описание конфигурации. Для активации хоста используется утилита a2ensite, которая создает символическую ссылку в директории /etc/apache2/sites-enabled/:

sudo a2ensite example.com.conf

Отключите хост по умолчанию, чтобы избежать конфликтов при обращении по IP-адресу:

sudo a2dissite 000-default.conf

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

sudo apache2ctl configtest

Вывод Syntax OK подтверждает, что ошибок нет. Примените изменения без полного перезапуска сервера, сохраняя активные соединения:

sudo systemctl reload apache2

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

Проверка работоспособности и типичные проблемы

После настройки виртуального хоста необходимо убедиться, что сервер принимает соединения и отдает корректный контент. Диагностика на этом этапе экономит часы отладки в будущем.

Тестирование через браузер и curl

Самый быстрый способ проверки - команда curl с флагом -I, которая запрашивает только HTTP-заголовки без тела ответа:

curl -I localhost

Успешный ответ содержит строку HTTP/1.1 200 OK и заголовок Server: Apache/2.4.x (Ubuntu). Код 200 означает, что сервер принял запрос и готов отдать контент. Для проверки конкретного виртуального хоста укажите заголовок Host:

curl -I -H "Host: example.com" localhost

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

Анализ логов и устранение частых ошибок

Логи Apache - основной источник информации при диагностике. Файлы журналов для каждого хоста находятся в /var/log/apache2/. Для мониторинга ошибок в реальном времени используйте tail -f:

sudo tail -f /var/log/apache2/error.log

Типичные ошибки и их решения:

  • Address already in use: AH00072 - порт 80 или 443 занят другим процессом. Найдите процесс через sudo ss -tulpn | grep :80 и остановите его или измените порт Apache в /etc/apache2/ports.conf.
  • Permission denied: AH00035 - Apache не может прочитать файлы сайта. Проверьте права доступа: владелец директории должен быть www-data или права должны быть 755 на директории и 644 на файлы.
  • Syntax error on line X - ошибка в конфигурационном файле. Запустите sudo apache2ctl configtest, он укажет точную строку и характер ошибки.

Для более глубокого анализа ошибок конфигурации и безопасности изучите профессиональную конфигурацию Apache2, где детально разобраны модули mod_security и mod_rewrite.

Дальнейшие шаги и обслуживание

Установленный и настроенный Apache требует регулярного обслуживания. Базовые операции, которые необходимо выполнять после развертывания:

  • Настройка SSL-сертификатов. Certbot от Let's Encrypt автоматизирует получение и обновление сертификатов. После настройки доменного имени выполните sudo apt install certbot python3-certbot-apache -y и sudo certbot --apache для автоматической конфигурации HTTPS.
  • Мониторинг логов. Настройте ротацию логов через logrotate, чтобы избежать переполнения дискового пространства. Конфигурация по умолчанию находится в /etc/logrotate.d/apache2 и обычно не требует изменений.
  • Автоматический перезапуск. Служба apache2 с включенным systemctl enable стартует при загрузке, но для автоматического восстановления после сбоев добавьте в юнит-файл директивы Restart=on-failure и RestartSec=5s через sudo systemctl edit apache2.
  • Обновление Apache. Регулярно выполняйте sudo apt update && sudo apt upgrade apache2 для получения исправлений безопасности. Критические обновления устанавливайте в течение 24 часов после публикации.

Если вы планируете развернуть полноценный веб-сервер с PHP и базой данных, воспользуйтесь пошаговым руководством по настройке веб-сервера на Ubuntu, которое охватывает установку PHP-FPM, MariaDB и публикацию первого сайта с SSL за 30 минут.

Для проектов, требующих быстрого масштабирования и отказоустойчивости, рассмотрите облачную инфраструктуру Timeweb Cloud. Сервис предоставляет VDS/VPS, управляемые базы данных и Kubernetes, позволяя сосредоточиться на конфигурации приложений, а не на обслуживании железа.

Поделиться:
Сохранить гайд? В закладки браузера