Как установить Apache на Ubuntu: настройка и запуск на Linux
Apache — это надежный и гибкий веб-сервер с открытым исходным кодом. Он работает почти на половине всех сайтов в интернете. Его популярность объясняется стабильностью, широкими возможностями настройки и поддержкой множества модулей.
В статье разберем, как установить Apache на Ubuntu 22.04 LTS (Jammy Jellyfish) — версию с долгосрочной поддержкой (LTS). Статья будет полезна как начинающим администраторам, так и тем, кто захочет освежить знания.
Для других версий дистрибутива, например Ubuntu 20.04 или 24.04, инструкции тоже актуальны. Выполним базовую установку пакета apache2, настроим брандмауэр, создадим виртуальный хост для вашего домена, обеспечим безопасность с помощью бесплатного SSL-сертификата от Let's Encrypt.

Подготовка системы
Прежде чем устанавливать Apache, нужно подготовить операционную систему. Это займет несколько минут и поможет избежать проблем в дальнейшем.
Проверка версии Ubuntu
Советуем убедиться, что вы используете подходящую версию Ubuntu. Статья ориентирована на Ubuntu 22.04 LTS, но приведенные инструкции, как правило, работают и на версиях 20.04 или 24.04.
Для проверки версии ОС выполните:

Команда выведет информацию о дистрибутиве:
Обновление и настройка системы
Сначала обновляем список доступных пакетов и устанавливаем последние версии уже имеющегося программного обеспечения. Это закрывает известные уязвимости и обеспечивает совместимость компонентов:
Убедитесь, что ваш пользователь имеет права на выполнение административных команд через sudo. Это необходимо для установки системных пакетов.
Проверка сети и соединений
Проверьте, есть ли у веб-сервера доступ в интернет для загрузки пакетов и разрешено ли входящее соединение на веб-порт.
Установите утилиту curl — она поможет проверить доступность сервисов и скачать файлы:
Проверьте, что брандмауэр, если он включен, разрешает HTTP-трафик. По умолчанию Apache использует порт 80.
Установка Apache на Ubuntu
Теперь установим сам веб-сервер. В Ubuntu для этого есть готовый пакет в официальных репозиториях, его и будем использовать.
Установка с использованием apt
Команда apt install скачает пакет apache2, все его зависимости и настроит систему для работы сервиса. Выполните команду:
После установки система автоматически создает и запускает службу Apache, а также активирует ее автозагрузку при старте системы.
Проверка работы службы Apache
Убедимся, что служба apache2 работает без сбоев и настроена на автозапуск. Проверьте статус службы:
В выводе команды вы должны увидеть статус active (running). Это подтверждает, что веб-сервер работает.
Понимание структуры конфигурации Apache в Ubuntu
В отличие от других дистрибутивов, Ubuntu использует модульную структуру конфигурационных файлов Apache. Это позволяет легко включать и отключать компоненты. Вот какие файлы есть и за что они отвечают:
/etc/apache2/apache2.conf — главный конфигурационный файл.
/etc/apache2/ports.conf — определяет, какие порты слушает Apache.
/etc/apache2/sites-available/ — здесь хранятся конфигурации всех виртуальных хостов.
/etc/apache2/sites-enabled/ — сюда помещаются симлинки на конфиги из sites-available, чтобы их активировать.
/etc/apache2/conf-available/ и /etc/apache2/conf-enabled/ — аналогично для дополнительных конфигов.
/etc/apache2/mods-available/ и /etc/apache2/mods-enabled/ — файл для управления модулями.

Настройка Apache
После установки сервера нужно обеспечить к нему доступ извне и убедиться в его корректной работе. Эти шаги критически важны для запуска веб-сайта.
Настройка брандмауэра
Если на сервере активен брандмауэр UFW (Uncomplicated Firewall), он по умолчанию блокирует HTTP-запросы. Нужно явно разрешить трафик на порт 80 (HTTP) и, при необходимости, на порт 443 (HTTPS).
Выполните команду, чтобы разрешить стандартный веб-трафик:
Эта команда добавляет правило для профиля 'Apache Full', который включает оба порта — 80 и 443. Убедитесь, что правило применилось, и проверьте статус UFW:
Тестирование начальной конфигурации
Самый простой способ проверить работу Apache — обратиться к его тестовой странице. Откройте веб-браузер и перейдите по IP-адресу вашего сервера. Если сервер локальный, используйте адрес http://localhost или http://127.0.0.1.
Вы должны увидеть стартовую страницу Ubuntu Apache2 по умолчанию.
Если страница не загружается, проверьте:
Статус службы. Убедитесь, что Apache работает (sudo systemctl status apache2).
Порт. Проверьте, что Apache прослушивает порт 80 командой sudo ss -tulpn | grep :80.
Брандмауэр. Подтвердите, что правило UFW активно.
Если же сервер удаленный (VPS/VM), а серверы удаленные в большинстве случаев, значит, графического интерфейса не будет. В таком случае проверить работу Apache можно с помощью утилиты curl, которую мы установили ранее:
В выводе будет HTML-код дефолтной страницы Apache. Если вы знаете внешний IP-адрес своего сервера, попробуйте выполнить:
Если IP адрес не знаете, подсказываем, как узнать:
Так вы найдете свой внешний IP, и зачастую это адрес в интернете, а не обозначение вроде 127.0.0.1 или 10.0.0.0/8.
Базовое устранение неисправностей
Советуем также проверить синтаксис конфигов, логи и процессы, которые слушают порты:
Работа с виртуальными хостами
Теперь перейдем к настройке виртуальных хостов. Это позволит размещать несколько сайтов на одном сервере. Что важно, в Ubuntu 22.04 структура конфигурации Apache предполагает использование сайтов в директориях /etc/apache2/sites-available и /etc/apache2/sites-enabled.
Конфигурация виртуальных хостов
Создадим виртуальный хост для тестового домена example.com. Сначала создадим корневую директорию для файлов сайта:
Создадим владельца директории и установим правильные права:
Создадим тестовую страницу index.html:
Добавим базовый HTML-код:
Создадим конфигурационный файл виртуального хоста:
Отредактируем файл, указав правильные пути:
Активируем виртуальный хост и перезагрузим Apache:
Эта же процедура создания виртуальных хостов описана в официальной документации ApacheУправление правами доступа
Правильная настройка прав доступа критична для безопасности. Есть два основных подхода:
Безопасная настройка, рекомендуется для продакшена. В этом варианте файлы веб-сайта принадлежат пользователю www-data, что максимально безопасно.
2. Практичная настройка, рекомендуется для разработки. Владельцем файлов остается ваш пользователь, а Apache (www-data) добавляется в вашу группу. Это позволяет редактировать файлы без sudo.
После этого надо выйти из системы и зайти снова, чтобы изменения в группах вступили в силу.
Для директорий с загрузками пользователей может потребоваться особая настройка прав. Рекомендации по безопасной конфигурации прав доступа приведены в документации Ubuntu.
Настройка безопасности и SSL
Шифрование трафика — обязательный стандарт для современных сайтов. HTTPS защищает данные пользователей и улучшает позиции в поисковых системах. В этом разделе расскажем, как настроить бесплатный SSL-сертификат от Let's Encrypt.
Установка Certbot для Let's Encrypt
Certbot — официальный клиент для автоматического получения и обновления SSL-сертификатов от Let's Encrypt. Установим его из репозитория Ubuntu:
Плагин python3-certbot-apache интегрируется с веб-сервером и автоматически настраивает виртуальные хосты для работы с HTTPS.
Получим SSL-сертификат для нашего домена example.com:
Для работы этой команды ваш домен (example.com) должен быть настроен в DNS и указывать на IP-адрес этого сервера. Если тестируете в локальной сети, шаг с получением SSL-сертификата можно пропустить. Или же использовать тестовый сертификат с флагом --test-cert:
Такие тестовые сертификаты предназначены только для проверки, для боевого сервера всегда используйте команду без --test-cert.
По итогу Certbot автоматически проверит владение доменом, получит сертификат и обновит конфигурацию Apache. Сертификаты будут автоматически обновляться перед истечением срока действия.
Включение SSL и настройка шифрования
После установки Certbot автоматически перенастраивает виртуальный хост для работы по HTTPS. Проверьте, что сайт доступен по защищенному протоколу: для этого введите в поисковой строке браузера https://example.com и убедитесь, что в адресной строке отображается замок.
Пример того самого замка в Google Chrome, который вы должны увидеть в адресной строке. Это означает, что подключение защищено по протоколу HTTPS. Мы для примера взяли сайт Certbot, но вы проверяйте свой домен https://example.comCertbot также настраивает перенаправление с HTTP на HTTPS и выбирает безопасные параметры шифрования. Проверим текущую конфигурацию SSL:
Эта команда покажет все активные виртуальные хосты и их настройки, включая SSL. Для дополнительной безопасности можно настроить более строгие параметры шифрования, отредактировав файл /etc/letsencrypt/options-ssl-apache.conf, но стандартные настройки Certbot уже обеспечивают хороший уровень защиты.
Управление модулями и расширенными функциями
Модульная архитектура Apache позволяет гибко расширять функциональность сервера. Правильная настройка этих компонентов значительно влияет на производительность и безопасность.
Подключение и управление модулями Apache
Модуль mod_rewrite — один из самых полезных. Он позволяет перенаправлять запросы и изменять URL-адреса. Например, его используют для реализации ЧПУ (человеко-понятных URL) или принудительного перенаправления с HTTP на HTTPS.
Активируем модуль:
Перезагрузить Apache:
Важный момент: чтобы правила перезаписи работали, их нужно добавить в конфигурацию виртуального хоста. Для этого откройте файл example.com.conf:
После внесения изменений не забудьте проверить конфигурацию и перезагрузить Apache.
Теперь в конфигурации виртуального хоста можно использовать правила перезаписи. Например, для перенаправления всех запросов на HTTPS добавьте в виртуальный хост:
Полное описание директив mod_rewrite доступно в документации Apache в разделе Apache Module mod_rewrite.
Какие модули стоит включить дополнительно:
mod_ssl обеспечит поддержку HTTPS. Обычно включается сам после того, как установите Certbot.
mod_headers позволяет управлять HTTP-заголовками, что полезно для безопасности (например, HSTS) и кеширования.
mod_security — это веб-брандмауэр, который защищает от атак. Защита веб-сервера от угроз — тема отдельной статьи, но для безопасности пока порекомендуем не пренебречь этим модулем.
Оптимизация производительности и безопасности
Настройка параметров KeepAlive и Multi-Processing Module (MPM) существенно влияет на производительность сервера.
KeepAlive позволяет устанавливать постоянное соединение между клиентом и сервером, что уменьшает задержки при загрузке нескольких ресурсов. Настройте в файле /etc/apache2/apache2.conf:
Эти параметры означают:
KeepAlive On — включение функции.
KeepAliveTimeout 5 — время ожидания следующего запроса в секундах.
MaxKeepAliveRequests 100 — максимальное количество запросов в одном соединении.
MPM event — рекомендуемый модуль для современных версий Apache. Проверьте его настройки в /etc/apache2/mods-available/mpm_event.conf:
Ключевые параметры:
MaxRequestWorkers — максимальное количество одновременных соединений.
ThreadsPerChild — количество потоков обработки на процесс.
MaxConnectionsPerChild — ограничение количества запросов на процесс (0 = без ограничений).
Оптимальные значения зависят от доступной памяти и процессорных ресурсов сервера: чем мощностей больше, тем большие значения можно проставить в параметрах конфигурационного файла Полные рекомендации по настройке с учетом требований и лимитов есть в документации Apache.
После изменения конфигурации проверьте синтаксис и перезагрузите сервер:
Основные команды для управления Apache
Эффективное администрирование веб-сервера требует знания ключевых команд. Они помогут быстро управлять службой и диагностировать проблемы.
Запуск и остановка сервера
Для управления службой Apache используйте систему systemd. Тут приводим стандартные команды для управления службами через systemd в Ubuntu.
Запуск сервера:
Остановка сервера:
Перезагрузка сервера (с разрывом активных соединений):
Мягкая перезагрузка (без разрыва соединений, только перечитывание конфигурации):
Проверка статуса службы:
Управление загрузкой при старте системы
Чтобы Apache автоматически запускался при загрузке системы, активируйте автозагрузку:
После выполнения enable создается символическая ссылка в соответствующих директориях systemd, что гарантирует запуск службы при загрузке ОС. Это стандартный механизм для систем на базе systemd.
Заключение
Мы установили и настроили Apache на Ubuntu 22.04 LTS — от базовой установки до работы с виртуальными хостами и SSL-шифрованием. Теперь у вас работает полноценный веб-сервер.
Напоследок дадим советы, которые помогут поддерживать стабильную работу веб-сервера:
Регулярно обновляйте систему:
Проверяйте статус Apache:
Мониторьте логи на предмет ошибок:
Периодически обновляйте SSL-сертификаты:
Что касается дальнейшего управления Apache, советуем настроить мониторинг производительности, резервное копирование конфигураций, а еще изучить балансировку нагрузки, чтобы обрабатывать повышенный трафик.
