Как установить веб-сервер Apache на Ubuntu 24.04
28 Dec 2025, 17:33:19
Apache веб сервер — это один из самых популярных и надежных веб-серверов в мире, который используется для размещения и управления веб-сайтами. Он был разработан в 1995 году и с тех пор стал основой для множества сайтов благодаря своей гибкости и мощным функциям. Apache поддерживает различные операционные системы, включая Windows, Linux и macOS, что делает его универсальным выбором для разработчиков и администраторов. Одним из ключевых преимуществ Apache является его модульная архитектура, которая позволяет добавлять или удалять функциональные возможности в зависимости от потребностей проекта. Например, вы можете установить модули для обработки PHP, управления безопасностью или ускорения работы сайта. Apache также обеспечивает высокую степень настройки, что позволяет оптимизировать производительность и безопасность веб-приложений. Более того, он поддерживает множество протоколов, включая HTTP/2, что способствует улучшению скорости загрузки страниц. Благодаря активному сообществу разработчиков, Apache постоянно обновляется и улучшает свои функции, что делает его надежным выбором как для малых, так и для крупных проектов.Подготовка системы перед установкой Apache
Перед установкой Apache важно подготовить систему, чтобы обеспечить стабильную и безопасную работу веб-сервера. Прежде всего, убедитесь, что ваша операционная система обновлена до последней версии. Это поможет избежать конфликтов с библиотеками и уязвимостями безопасности. Затем проверьте наличие необходимых пакетов, таких как libc, gcc и другие зависимости, которые могут потребоваться для установки Apache. Используйте команду пакетного менеджера вашей ОС (например, apt для Debian/Ubuntu или yum для CentOS) для установки этих компонентов. Также рекомендуется создать отдельного пользователя для работы с Apache, что повышает безопасность, изолируя веб-сервер от других процессов в системе. Не забудьте настроить брандмауэр, открыв порты 80 и 443 для HTTP и HTTPS соответственно. Это позволит вашему серверу принимать входящие запросы от клиентов. После завершения этих шагов можно переходить к установке и настройке Apache, что обеспечит надежное функционирование вашего веб-приложения. Следуя этим рекомендациям, вы подготовите свою систему к эффективной работе с Apache, минимизируя потенциальные проблемы.Установка Apache с помощью APT
Это простой и эффективный способ развертывания веб-сервера на системах, основанных на Debian, таких как Ubuntu. Для начала необходимо обновить список пакетов, выполнив следующую команду:apt updateЭто обеспечит установку последней версии Apache.Также рекомендуется обновить версии установленного программного обеспечения на сервере с помощью команды:
apt upgradeЗатем, чтобы установить сервер, введите команду:apt install apache2После завершения установки Apache автоматически запустится.Посмотреть версию, работающую в данный момент в вашей системе можно командой:
apache2 -vА для проверки состояния сервиса используйте:
systemctl status apache2Вы должны увидеть состояние active (running).
Конфигурация MPM (Multi-Processing Module) для Apache
Apache поддерживает несколько MPM (Multi-Processing Module), включая prefork, worker и event, каждый из которых имеет свои особенности и предназначение. Устаревший Worker MPM описывать не имеет смысла ввиду его неспособности работать в многотопочном решиме и отсуствием достаточного уровня безопасности.Описание MPM Prefork Apache
При использовании модуля Prefork Apache работает как не многопоточный веб-сервер с предварительным созданием дочерних процессов. Это означает, что каждый дочерний процесс Apache содержит один поток и обрабатывает один запрос за раз.Поэтому он потребляет немного больше ресурсов, чем многопоточный Event MPM, но также обеспечивает лучшую стабильность. MPM Prefork использует родительский процесс для поддержания нескольких дополнительных или простаивающих процессов открытыми для обработки новых запросов.
Предварительное создание дочерних процессов по-прежнему остается лучшим выбором, если Apache приходится использовать не потокобезопасные библиотеки, такие как mod_php (DSO), и идеально подходит, если важна изоляция процессов. Крайне важно найти правильный баланс между максимальным количеством процессов и доступной оперативной памятью на сервере с предварительным созданием дочерних процессов, поскольку это потребляет много оперативной памяти. Предварительное создание дочерних процессов всегда должно использоваться, когда необходимо выполнить что-то, что не является потокобезопасным.
Большинство версий PHP по-прежнему не являются потокобезопасными, и единственным MPM-модулем, безопасным для использования с не потокобезопасным кодом, является MPM Prefork, поскольку он создает новые процессы, а не потоки, для обработки новых запросов.
Описание MPM Event Apache
Event MPM был представлен в Apache 2.4. Он довольно похож на старый Worker MPM, но разработан для управления высокими нагрузками.Каждый процесс в рамках Event MPM может содержать несколько потоков, но, в отличие от Prefork, каждый из них способен выполнять более одной задачи.
Этот режим поддерживается только на серверах, работающих под управлением Apache 2.4. Он позволяет обрабатывать больше запросов одновременно, передавая часть вычислительной работы вспомогательным потокам.
При использовании режима Event MPM Apache пытается решить проблему «поддержания соединения», с которой сталкиваются другие режимы MPM.
Когда клиент завершает первый запрос, он может поддерживать соединение открытым и отправлять последующие запросы, используя тот же сокет, что снижает перегрузку соединения. Однако это также может привести к зависанию процессов на длительное время в ситуациях, когда код написан неоптимально.
Если процессы Apache остаются активными слишком долго, это может привести к исчерпанию серверных ресурсов и, как следствие, к прекращению работы сервера.
Управление MPM Apache
Чтобы определить, какой MPM используется в вашей системе, выполните следующую команду:apache2ctl -M | grep mpmОжидаемый ответ:mpm_event_module (shared)
Для того, чтобы переключится на потоко безопасный prefork выполните следующие команды:
a2dismod mpm_event
a2enmod mpm_prefork
systemctl restart apache2
apache2ctl -M | grep mpm
Настройка брандмауэра для Apache
Перед тестированием Apache желательно настроить брандмауэр, чтобы разрешить веб-трафик. С помощью UFW (Uncomplicated Firewall) нужно разрешить доступ к апачу и другим необходимым службам, таким как SSH, и запретить к остальному.После установки Apache автоматически регистрируется несколько профилей приложений в UFW, которые определяют, какие порты открывать для различных типов трафика. Чтобы просмотреть эти профили, выполните команду:
ufw app list
Каждый профиль предоставляет разные уровни доступа:
| Профиль | Открытые порты | Описание |
| Apache | 80/tcp | Разрешает незашифрованный HTTP-трафик |
| Apache Secure | 443/tcp | Разрешает зашифрованный HTTPS-трафик |
| Apache Full | 80, 443/tcp | Разрешает трафик как по протоколу HTTP, так и по протоколу HTTPS |
ufw allow 'OpenSSH'Поскольку большинство современных веб-сайтов по умолчанию используют HTTPS, лучше всего включить профиль Apache Full, чтобы разрешить как HTTP, так и HTTPS-соединения:
ufw allow 'Apache Full'Чтобы включить UFW в вашей системе, выполните следующую команду:
ufw enableВы увидите примерно такой результат:Firewall is active and enabled on system startup
Проверить статус можно командой:
ufw statusА расширенный вывод:ufw status verbose
Проверка состояния службы Apache
После установки Apache запускается автоматически. Давайте проверим, работает ли он.В Ubuntu управление Apache осуществляется с помощью systemd, который контролирует запуск, остановку и перезапуск служб. Чтобы проверить активность Apache, выполните следующую команду:
systemctl status apache2В результате вы должны увидеть примерно следующее:
Если вы видите Active: active (running), значит, Apache запущен и работает.
Если Apache не активен, вы можете запустить его вручную с помощью команды:
systemctl start apache2Включение или отключение Apache при загрузке системы
По умолчанию Apache настроен на автоматический запуск при загрузке системы. Вы можете подтвердить это, проверив статус его включения:systemctl is-enabled apache2Чтобы отключить автоматический запуск Apache при загрузке системы:
systemctl disable apache2Чтобы снова включить его:systemctl enable apache2Для простого подтверждения, что Apache работает, без полного вывода логов можно использовать:
systemctl is-active apache2Если возвращается статус active, значит, Apache работает как положено.