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

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

15 августа 2023·Обновлено: август 2026·8 мин чтения
Дмитрий Лукьянов
Автор материалаДмитрий ЛукьяновBackend-разработчик, YuSMP Group
Профиль автора
Веб-сервер Apache: Установка и Настройка

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

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

Веб-сервер — это программа, которая принимает 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.

Команды управления 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, когда вы просто меняете конфигурацию на работающем сервере — активные соединения при этом не прерываются.

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

Виртуальные хосты позволяют одному серверу обслуживать несколько доменов. Конфиги хранятся в /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.
  • Мониторинг: 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 — проверенный временем веб-сервер, который не теряет актуальности: его модульность и широкая поддержка в хостинговых панелях делают его первым выбором для большинства Linux-серверов. Правильно настроенный сервер с HTTPS, UFW и логированием — надёжная основа для любого веб-проекта. Этот материал подготовили специалисты веб-разработки YuSMP Group. Больше технических статей — в блоге студии разработки YuSMP Group.

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

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

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