Apache2 на Ubuntu ставится одной короткой командой, но на практике важно не просто установить пакет, а сразу проверить запуск, открыть порт и убедиться, что сервер реально отдаёт страницу. Ниже — рабочая инструкция без лишней теории, рассчитанная на Ubuntu Server и обычную установку из терминала.
Что такое Apache2 и зачем он нужен
Apache2 — это веб-сервер, который принимает запросы по HTTP/HTTPS и отдаёт сайты, статику, проксирует запросы к приложениям и обслуживает виртуальные хосты. В Ubuntu он устанавливается как пакет apache2 через APT, а после установки обычно запускается автоматически.
Если вы только начинаете работать с Linux-серверами, Apache — это тот фундамент, с которого стоит стартовать. Он нетребователен к ресурсам, отлично документирован и позволяет на практике понять, как веб-сервер обрабатывает HTTP-запросы, работает с конфигурационными файлами и обслуживает несколько сайтов на одной машине через виртуальные хосты.
Если коротко: ставите пакет, проверяете статус, открываете доступ в файрволе и тестируете страницу в браузере.
Подготовка перед установкой
Перед установкой обновите список пакетов. Это снижает риск поставить устаревшую версию или получить конфликт зависимостей. Пропускать этот шаг не советую — видел ситуации, когда на свежеразвёрнутой виртуалке APT пытался подтянуть несуществующие версии пакетов просто потому, что индекс устарел на несколько месяцев.
sudo apt update
Если система давно не обновлялась, можно сразу сделать и полное обновление. Это займёт больше времени, но зато вы получите актуальные версии всех пакетов, включая ядро и системные библиотеки:
sudo apt upgrade
Установка Apache2
Основная команда для Ubuntu такая:
sudo apt install apache2
Для Ubuntu это стандартный способ установки пакета Apache2 через APT. После выполнения менеджер пакетов сам рассчитает зависимости, загрузит всё необходимое и запустит сервис. В большинстве случаев Apache стартует автоматически — systemd видит новый юнит и сразу поднимает его.
Если нужно установить без дополнительных рекомендуемых пакетов, используют более компактный вариант:
sudo apt install --no-install-recommends apache2
Но для большинства случаев обычной установки достаточно. Рекомендуемые пакеты редко бывают лишними, а экономия места на сервере в 2025 году — не та задача, ради которой стоит усложнять себе жизнь.
Проверка, что Apache запустился
После установки проверьте состояние службы:
sudo systemctl status apache2
В норме вы увидите статус active (running). Если служба не запустилась автоматически — такое бывает, когда порт 80 уже занят другим процессом или конфигурационный файл повреждён, — запустите её вручную:
sudo systemctl start apache2
Чтобы Apache стартовал при каждом включении сервера:
sudo systemctl enable apache2
Это критически важный момент, о котором забывает каждый второй новичок. Сервер перезагрузился, Apache не поднялся, сайт лежит — а вы даже не сразу понимаете, в чём дело. Всегда проверяйте автозапуск.
Полезные команды управления
| Действие | Команда |
|---|---|
| Запустить Apache | sudo systemctl start apache2 |
| Остановить Apache | sudo systemctl stop apache2 |
| Перезапустить Apache | sudo systemctl restart apache2 |
| Перечитать конфигурацию без полного перезапуска | sudo systemctl reload apache2 |
| Проверить статус | sudo systemctl status apache2 |
| Включить автозапуск | sudo systemctl enable apache2 |
Обратите внимание на разницу между restart и reload. Restart полностью останавливает сервис и запускает заново — все активные соединения при этом обрываются. Reload только перечитывает конфигурационные файлы, не трогая текущие сессии. На боевом сервере с живыми пользователями всегда предпочитайте reload, если меняли только настройки виртуальных хостов или модулей.
Проверка через браузер
После установки и запуска откройте в браузере адрес:
http://localhost
Если сервер стоит на удалённой машине, вместо localhost укажите IP-адрес сервера. Узнать его можно командой ip a — смотрите на интерфейс, через который машина подключена к сети, обычно это eth0 или ens18. В рабочем состоянии должна открыться стандартная стартовая страница Apache с логотипом и надписью «It works!».
Если страницы нет, проверьте:
- запущен ли сервис
apache2—systemctl status apache2; - не блокирует ли порт 80 файрвол —
sudo ufw status; - правильно ли указан IP-адрес — нет ли опечатки или путаницы с localhost на удалённой машине;
- нет ли конфликта с другим веб-сервером — например, nginx мог занять порт 80 раньше.
Настройка файрвола в Ubuntu
Если на сервере включён UFW, нужно разрешить профиль Apache. В Ubuntu для этого обычно используют профиль Apache — он автоматически открывает порты 80 и 443, что покрывает HTTP и HTTPS.
sudo ufw allow 'Apache'
После этого проверьте правила:
sudo ufw status
Если UFW неактивен, вы увидите Status: inactive. В этом случае файрвол не блокирует соединения, но на боевом сервере я настоятельно рекомендую его включить и настроить — открытый для всего мира сервер без файрвола живёт недолго.
Если нужен только HTTP без HTTPS, можно открыть порт 80 отдельно, но профиль Apache удобнее, потому что он учитывает типовой сценарий и вам не придётся потом отдельно добавлять правило для 443 порта, когда решите настраивать сертификаты.
Где лежат основные файлы Apache2
После установки полезно сразу понимать, где что находится. Когда вы настраиваете первый виртуальный хост или ищете причину ошибки, навигация по этим каталогам должна быть рефлекторной.
| Файл или каталог | Назначение |
|---|---|
/etc/apache2/apache2.conf |
Главный конфигурационный файл |
/etc/apache2/sites-available/ |
Доступные виртуальные хосты |
/etc/apache2/sites-enabled/ |
Активированные сайты |
/etc/apache2/mods-available/ |
Доступные модули |
/etc/apache2/mods-enabled/ |
Включённые модули |
/var/www/html/ |
Стандартный корень сайта |
/var/log/apache2/ |
Логи Apache |
Логи в /var/log/apache2/ — ваш главный инструмент диагностики. Файл access.log показывает все запросы к серверу, а error.log — ошибки конфигурации, проблемы с правами доступа и скриптами. Если что-то идёт не так, первым делом смотрите именно сюда.
Как быстро проверить, что сервер отдаёт контент
Самый простой тест — посмотреть содержимое стандартной страницы через curl. Эта утилита отправляет HTTP-запрос и показывает ответ сервера, включая заголовки и тело ответа.
curl -I http://localhost
Если Apache работает, вы получите HTTP-заголовки и код ответа, обычно 200 OK. В заголовках также будет строка Server: Apache/2.4.X (Ubuntu), подтверждающая, что отвечает именно Apache.
Можно проверить и содержимое:
curl http://localhost
Если видите HTML-код с характерной структурой — теги <html>, <body> и текст «It works!», — значит веб-сервер отвечает корректно.
Типовые ошибки при установке и запуске
1. apache2 установлен, но страница не открывается
Чаще всего причина в одном из трёх мест:
- служба не запущена — проверьте
systemctl status apache2; - закрыт порт 80 — проверьте
sudo ufw statusиsudo iptables -L; - на сервере уже работает другой веб-сервер — nginx, lighttpd или даже второй экземпляр Apache.
Проверка:
sudo systemctl status apache2
sudo ss -tlnp | grep :80
Вторая команда покажет, какой процесс слушает порт 80. Если там не Apache, а что-то другое — останавливайте конфликтующий сервис или меняйте порт.
2. Ошибка при старте службы
Посмотрите логи — это первое, что нужно сделать. Система journalctl хранит сообщения systemd, а собственные логи Apache лежат в /var/log/apache2/.
sudo journalctl -xeu apache2
sudo tail -f /var/log/apache2/error.log
И проверьте конфигурацию:
sudo apache2ctl configtest
Если конфиг сломан, Apache не запустится. Типичная ситуация: вы правили виртуальный хост, ошиблись в синтаксисе директивы, сохранили файл и сделали restart. Сервер падает, а команда configtest сразу покажет строку с ошибкой.
3. Открывается не та страница
Если вы уже меняли файлы сайта, убедитесь, что редактируете нужный документ в /var/www/html/ или активный виртуальный хост в sites-enabled. Новички часто правят файл в sites-available, забывая создать символическую ссылку в sites-enabled командой a2ensite. Без этого Apache просто не видит вашу конфигурацию.
Пошаговая инструкция для быстрого запуска
1. Обновите индекс пакетов:
sudo apt update
2. Установите Apache2:
sudo apt install apache2
3. Проверьте статус службы:
sudo systemctl status apache2
4. Включите автозапуск:
sudo systemctl enable apache2
5. Разрешите доступ в файрволе:
sudo ufw allow 'Apache'
6. Откройте http://localhost или IP сервера и проверьте стартовую страницу.
Что делать после установки
Когда Apache уже работает, обычно переходят к следующему шагу:
- создают виртуальный хост для своего домена — это даёт понимание, как один сервер обслуживает несколько сайтов;
- меняют стандартную страницу сайта — хотя бы для того, чтобы убедиться, что правки применяются;
- подключают PHP, если нужен динамический сайт — установка
libapache2-mod-phpи проверка черезphpinfo(); - настраивают HTTPS через сертификат — Let’s Encrypt и Certbot стали стандартом де-факто;
- ограничивают доступ к служебным каталогам — закрывают
.git, запрещают листинг директорий.
Если это учебный сервер, полезно сразу потренироваться на тестовом виртуальном хосте — так проще понять, как Apache обрабатывает разные сайты на одной машине. Создайте директорию /var/www/test, положите туда свой index.html, пропишите виртуальный хост и активируйте его через a2ensite. Это базовый навык, который пригодится в любой работе с веб-серверами.
Чек-лист проверки после установки
apache2установлен без ошибок;systemctl status apache2показываетactive (running);curl http://localhostвозвращает страницу;- порт 80 открыт — проверено через
ufw statusилиss -tlnp; - автозапуск включён —
systemctl is-enabled apache2; - в
/var/log/apache2/появляются логи запросов.
FAQ
Нужно ли перезагружать сервер после установки Apache2?
Нет, обычно достаточно запустить сервис или проверить, что он уже стартовал автоматически. Перезагрузка всей машины — это крайняя мера, которая в случае с Apache практически никогда не требуется.
Чем apt install apache2 отличается от apt-get install apache2?
Для обычной установки на Ubuntu оба варианта работают, но в современных инструкциях чаще используют apt install apache2 как более удобный интерфейс. Apt показывает прогресс-бар, цветной вывод и имеет более дружелюбный синтаксис. Apt-get — это низкоуровневая утилита, которая до сих пор используется в скриптах, потому что её поведение гарантированно не меняется между версиями.
Почему после установки Apache не открывается в браузере?
Чаще всего проблема в остановленной службе, закрытом порте 80 или конфликте с другим веб-сервером. Пройдите по цепочке: статус сервиса, файрвол, занятость порта. В 95% случаев причина найдётся на одном из этих трёх шагов.
Где редактировать главную страницу сайта?
Обычно в /var/www/html/index.html, если не настроен отдельный виртуальный хост. Если вы создали виртуальный хост, корень сайта будет в той директории, которую вы указали в директиве DocumentRoot.
Как понять, что конфигурация Apache не сломана?
Выполните проверку:
sudo apache2ctl configtest
Если всё в порядке, команда сообщит, что синтаксис корректен. Возьмите за правило запускать configtest после каждого изменения конфигурационных файлов перед reload или restart — это спасёт вас от падения сервера из-за опечатки.
Вывод
Установка Apache2 на Ubuntu через командную строку сводится к трём базовым шагам: обновить списки пакетов, поставить apache2 и проверить, что служба запущена. Дальше важно не забыть про файрвол, автозапуск и базовую диагностику — именно эти мелочи чаще всего мешают новичкам быстрее всего. Когда сервер отвечает на curl http://localhost и показывает страницу в браузере, можно считать, что фундамент заложен. Следующий этап — виртуальные хосты и HTTPS, но это уже другая история.
