Когда речь заходит о веб-серверах на Ubuntu, все вокруг только и говорят про Nginx. Мол, модный, быстрый, легкий. Но что делать, если тебе нужен старый добрый Apache? Например, из-за специфики проекта, привычки или желания докопаться до тонкой настройки .htaccess? Давайте разберёмся, как поставить Apache на Ubuntu, чтобы всё работало как часы, и почему это вообще может быть отличной альтернативой Nginx.
Возможности
Apache — это не просто динозавр мира веб-серверов. Он до сих пор актуален благодаря:
- Гибкой настройке через
.htaccess
и виртуальные хосты - Сотням модулей (mod_rewrite, mod_proxy, mod_ssl и т.д.)
- Простоте интеграции с PHP через
mod_php
или PHP-FPM - Отличной документации и огромному комьюнити
- Поддержке CGI, Perl, Python и других “старых” технологий
Короче, если у тебя проект с кучей легаси или специфическими требованиями — Apache ещё даст фору многим.
Что требуется
Перед стартом убедись, что у тебя:
- Ubuntu 20.04/22.04 LTS (или свежее)
- Минимум 512 МБ RAM (для теста хватит и меньше, но не надо так)
- Права
sudo
на сервере - Свободный порт 80 (или другой, если он занят)
- Доступ в интернет для установки пакетов
Можно ставить на VPS, локалку, даже на Raspberry Pi — Apache не особо привередливый.
Установка — пошаговая инструкция
- Обнови систему:
sudo apt update sudo apt upgrade
- Поставь Apache:
sudo apt install apache2
Это всё. Никаких репозиториев, всё есть в стандартных пакетах.
- Проверь статус сервиса:
sudo systemctl status apache2
Должно быть что-то вроде
active (running)
. - Открой порт 80 в фаерволе (если UFW включён):
sudo ufw allow 'Apache'
Проверь
sudo ufw status
, чтобы убедиться, что правило применилось. - Проверь, что всё работает:
curl http://localhost
Или зайди в браузере по
http://IP_СЕРВЕРА
— увидишь дефолтную страницу Apache.
Использование — команды и варианты
Вот набор команд, которые тебе реально пригодятся:
sudo systemctl start apache2
— запустить серверsudo systemctl stop apache2
— остановить серверsudo systemctl restart apache2
— перезапуститьsudo systemctl reload apache2
— перечитать конфиг без рестартаsudo systemctl enable apache2
— автозапуск при загрузкеsudo apache2ctl configtest
— проверить конфиг на ошибкиsudo a2enmod MODULENAME
— включить модуль (например,a2enmod rewrite
)sudo a2dismod MODULENAME
— выключить модульsudo a2ensite SITENAME.conf
— включить виртуальный хостsudo a2dissite SITENAME.conf
— выключить виртуальный хост
Все конфиги лежат в /etc/apache2/
. Виртуальные хосты — в /etc/apache2/sites-available/
. Не забудь после правок делать sudo systemctl reload apache2
.
Ошибки и как делать не надо
- Не редактируй
/etc/apache2/apache2.conf
напрямую без бэкапа — лучше работай черезsites-available
иmods-available
. - Не ставь Apache и Nginx на один порт одновременно — конфликты обеспечены.
- Не забывай про фаервол — часто Apache работает, но порт закрыт.
- Не игнорируй
configtest
— он реально спасает от глупых опечаток. - Не запускай сервер под root — Apache сам поднимает воркеры с нужными правами.
Пример реального использования в окружении
Представь, у тебя старый проект на WordPress с кучей .htaccess-магии. На Nginx всё это надо переписывать в rewrite
-блоки, а на Apache всё работает из коробки.
Пара команд — и у тебя полноценная среда для тестов:
sudo apt install apache2 php libapache2-mod-php mysql-server
sudo a2enmod rewrite
sudo systemctl restart apache2
Дальше — кидаешь проект в /var/www/html
, чекаешь права, и всё взлетает. Не надо колдовать с FastCGI, не надо городить велосипед с проксированием.
Заключение
Apache — это не “устаревший монстр”, а по-прежнему мощный инструмент, если знаешь, где и как его использовать. Для проектов, где важна гибкость, поддержка .htaccess, или просто привычка — это отличный выбор. А установка на Ubuntu — дело пары минут.
Документация и ссылки:
Если есть вопросы — гугли ошибки по тексту, почти всегда уже кто-то сталкивался. Удачи!
Ваш отзыв