Когда речь заходит о веб-серверах на 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 — дело пары минут.
Документация и ссылки:
Если есть вопросы — гугли ошибки по тексту, почти всегда уже кто-то сталкивался. Удачи!
Ваш отзыв