Услуги Портфолио Контакты БлогНовости +7 (800) 511‑32‑27 Обсудить проект
Статьи

Веб-сервер Apache: Установка и Настройка

15 августа 2023·Обновлено: сентябрь 2026·7 мин чтения
Логотип YuSMP Group
Автор материалаРедакция компании YuSMP GroupБлог YuSMP Group
Профиль редакции
Веб-сервер Apache: Установка и Настройка
TL;DR — кратко о главном
  • Apache ставится одной командой — sudo apt install apache2 — и обслуживает около 30% сайтов в мире (данные W3Techs).
  • Управление сервисом — через systemctl: start, stop, restart, reload, автозапуск — enable.
  • Конфиги виртуальных хостов лежат в /etc/apache2/sites-available/, активируются командой a2ensite.
  • Модули включаются командой a2enmod (mod_rewrite, mod_ssl, mod_proxy) — гибкость без лишнего кода.
  • Порты 80 и 443 открывает sudo ufw allow 'Apache Full', а бесплатный SSL подключает Certbot одной командой.

Apache HTTP Server — один из самых популярных веб-серверов в мире: по данным W3Techs, он обслуживает около 30% всех активных сайтов. Его выбирают за надёжность, богатый набор модулей и зрелую документацию. В этом руководстве разберём полный цикл: установка Apache на Ubuntu/Debian, запуск, настройка виртуальных хостов, открытие портов через UFW и подключение HTTPS через Certbot. Мы в YuSMP Group ежедневно настраиваем такие серверы в рамках услуг веб-разработки под ключ — ниже практический чек-лист без лишней теории.

Зачем нужен веб-сервер?

Веб-сервер — это программа, которая принимает HTTP-запросы от браузеров и отдаёт им страницы, файлы и API-ответы. Apache работает по модульной архитектуре: вы подключаете только то, что нужно — mod_rewrite для URL-rewrite, mod_ssl для HTTPS, mod_proxy для проксирования. Это даёт гибкость, которую сложно получить в более простых решениях.

Установка Apache на Ubuntu и Debian

Перед установкой обновите пакетную базу системы:

sudo apt update && sudo apt upgrade -y

Затем установите Apache:

sudo apt install apache2 -y

После установки Apache стартует автоматически. Проверьте статус:

sudo systemctl status apache2

Если в выводе вы видите Active: active (running) — сервер работает. Откройте браузер, введите IP-адрес сервера: отобразится стандартная страница приветствия Apache.

Терминал Linux-сервера с командами установки Apache

Команды управления Apache: таблица

Все операции с сервисом выполняются через systemctl. Запомните эти команды — они используются ежедневно:

ДействиеКоманда
Запустить Apachesudo systemctl start apache2
Остановить Apachesudo systemctl stop apache2
Перезапустить (прерывает соединения)sudo systemctl restart apache2
Мягкий reload конфигаsudo systemctl reload apache2
Проверить статусsudo systemctl status apache2
Включить автозапуск при стартеsudo systemctl enable apache2
Отключить автозапускsudo systemctl disable apache2
Проверить синтаксис конфигаsudo apache2ctl configtest

Важно: используйте reload вместо restart, когда вы просто меняете конфигурацию на работающем сервере — активные соединения при этом не прерываются.

Структура конфигурационных файлов и директорий Apache

Прежде чем настраивать виртуальные хосты и модули, полезно понимать, где Apache хранит свои файлы. Вся конфигурация живёт в /etc/apache2/:

ПутьНазначение
/etc/apache2/apache2.confГлавный конфигурационный файл — глобальные настройки и подключение остальных конфигов
/etc/apache2/sites-available/Конфиги виртуальных хостов, ещё не обязательно активных
/etc/apache2/sites-enabled/Симлинки на активные сайты — создаются командой a2ensite
/etc/apache2/mods-available/Все доступные модули Apache
/etc/apache2/mods-enabled/Симлинки на включённые модули — управляются a2enmod/a2dismod
/etc/apache2/conf-available/Дополнительные конфиги, например security.conf
/var/www/html/Каталог по умолчанию для файлов сайта
/var/log/apache2/Логи access.log и error.log

Такая структура — не случайность: она позволяет держать «доступные» и «включённые» конфиги раздельно, безопасно тестировать изменения и откатывать их без риска сломать рабочий сайт.

Управление модулями Apache

Модульная архитектура — главное преимущество Apache: вместо монолитного ядра вы подключаете только нужную функциональность. Список включённых модулей показывает команда:

apache2ctl -M

Модуль включается командой a2enmod, отключается — a2dismod. После любого изменения набора модулей сервис нужно перезапустить:

sudo a2enmod rewrite
sudo a2enmod ssl
sudo a2enmod proxy
sudo systemctl restart apache2

Три модуля, которые нужны почти в каждом проекте:

  • mod_rewrite — переписывание URL: ЧПУ-ссылки, редиректы, правила в .htaccess.
  • mod_ssl — обязателен для работы по HTTPS; Certbot включает его автоматически.
  • mod_proxy / mod_proxy_http — проксирование запросов на backend (Node.js, PHP-FPM, приложение на другом порту).
Разработчик просматривает структуру конфигурационных файлов веб-сервера в редакторе кода

Как настроить виртуальные хосты

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

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

Добавьте следующую конфигурацию:

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com

    ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>

Активируйте сайт и перезагрузите конфиг:

sudo a2ensite example.com.conf
sudo systemctl reload apache2

Чтобы отключить сайт: sudo a2dissite example.com.conf.

Основные директивы конфигурации

  • DocumentRoot — директория с файлами сайта.
  • ServerName — основной домен сервера.
  • ServerAlias — дополнительные домены (например, www-версия).
  • Directory — настройки доступа к конкретной директории.
  • ErrorLog / CustomLog — пути к файлам логов.

Открытие портов через UFW

Если на сервере включён файрвол UFW, Apache по умолчанию блокируется. Откройте оба порта — 80 (HTTP) и 443 (HTTPS) — одной командой:

sudo ufw allow 'Apache Full'

Проверьте результат:

sudo ufw status

В выводе должны быть строки Apache Full ALLOW Anywhere. Если нужно открыть только HTTP: sudo ufw allow 'Apache'; только HTTPS: sudo ufw allow 'Apache Secure'.

Подключение HTTPS через Let's Encrypt и Certbot

С 2026 года браузеры активно помечают HTTP-сайты как небезопасные. Подключить бесплатный SSL-сертификат через Let's Encrypt можно в несколько команд:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d example.com -d www.example.com

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

sudo certbot renew --dry-run

После успешного выполнения ваш сайт будет доступен по https://.

Где находятся логи Apache

Логи — главный инструмент диагностики. По умолчанию они хранятся в:

  • /var/log/apache2/access.log — все входящие запросы.
  • /var/log/apache2/error.log — ошибки сервера.

Для просмотра последних ошибок в реальном времени:

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

Для виртуальных хостов пути к логам задаются директивами ErrorLog и CustomLog в конфигурационном файле.

Безопасность Apache: базовые меры

  • Регулярные обновления: sudo apt update && sudo apt upgrade — исправления уязвимостей выходят часто.
  • Скрыть версию сервера: в /etc/apache2/conf-available/security.conf установите ServerTokens Prod и ServerSignature Off.
  • Минимальные права: Apache запускается от пользователя www-data — не давайте этому пользователю права на запись в директории, которые он не должен изменять.
  • Отключить листинг директорий: уберите Options Indexes из конфигурации — иначе посетители увидят список файлов в директориях без index.html.
  • Защита от брутфорса: установите Fail2ban (sudo apt install fail2ban -y) — сервис автоматически блокирует IP-адреса после нескольких неудачных попыток авторизации или подозрительной активности в логах Apache.
  • Мониторинг: sudo journalctl -u apache2 -n 100 и анализ error.log — часть ежедневной работы администратора.

Если Apache не запускается — всегда начинайте с sudo apache2ctl configtest: команда покажет строку с синтаксической ошибкой в конфиге. Второй шаг — sudo journalctl -u apache2 -n 50.

FAQ: частые вопросы про Apache

Как проверить, запущен ли Apache?

Выполните sudo systemctl status apache2. Строка Active: active (running) означает, что Apache работает. Дополнительно откройте браузер и введите IP-адрес сервера — страница приветствия Apache подтвердит это визуально.

Apache не запускается — что делать?

Первый шаг: sudo apache2ctl configtest — это покажет синтаксическую ошибку в конфиге, если она есть. Второй шаг: sudo journalctl -u apache2 -n 50 — последние 50 строк логов сервиса. Самая частая причина — занятый порт 80 (другой процесс, например Nginx) или ошибка в файле виртуального хоста.

Как открыть порты 80 и 443 через UFW?

Одна команда: sudo ufw allow 'Apache Full'. Она открывает оба порта сразу. Проверьте: sudo ufw status.

Где находятся логи Apache?

Логи доступа — /var/log/apache2/access.log, логи ошибок — /var/log/apache2/error.log. Для виртуального хоста пути задаёте вы сами через директивы ErrorLog и CustomLog.

В чём разница между restart и reload?

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

Где хранятся конфигурационные файлы Apache?

Главный файл — /etc/apache2/apache2.conf. Конфиги виртуальных хостов лежат в /etc/apache2/sites-available/ (активные — в sites-enabled/ как симлинки), а модули — в mods-available/ и mods-enabled/.

Как посмотреть, какие модули Apache включены?

Выполните sudo apache2ctl -M — команда выведет список всех активных модулей. Включить новый модуль можно командой sudo a2enmod <имя>, отключить — sudo a2dismod <имя>, после чего перезапустите сервис.

Apache — проверенный временем веб-сервер, который не теряет актуальности: его модульность и широкая поддержка в хостинговых панелях делают его первым выбором для большинства Linux-серверов. Правильно настроенный сервер с HTTPS, UFW и логированием — надёжная основа для любого веб-проекта. Этот материал подготовили специалисты веб-разработки YuSMP Group. Больше технических статей — в блоге студии разработки YuSMP Group.

Обсудим ваш проект?

Соберём команду под вашу задачу и оценим проект за 2 дня — бесплатно.

Обсудить проект