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. Запомните эти команды — они используются ежедневно:
| Действие | Команда |
|---|---|
| Запустить Apache | sudo systemctl start apache2 |
| Остановить Apache | sudo 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 дня — бесплатно.




