Apache остаётся одним из самых стабильных и понятных веб-серверов. Он не требует глубоких знаний, а базовой настройки достаточно, чтобы запустить сайт или backend-приложение
NOTE:
Если вы только купили сервер:
Подключитесь к серверу
Выполните подготовку сервера к работе
Apache доступен в репозиториях Ubuntu, поэтому установка занимает всего пару минут. Сначала обновим пакеты - это снижает риск конфликтов и устаревших зависимостей.
NOTE:
Если вы работаете от пользователя root, то в командах не нужно использовать sudo
sudo apt update && sudo apt upgrade -y
Эта команда приводит систему в актуальное состояние.
sudo apt install apache2 -y
Подробнее про apt: Как установить и удалить программу в Linux через терминал
После установки Apache автоматически запускается. Чтобы убедиться, что он работает, проверьте статус:
sudo systemctl status apache2
Если всё зелёное и в строке Active стоит running, то сервер готов обслуживать запросы.
Подробнее о systemctl можно узнать из статьи: Как перезапустить сервис в Linux
Чтобы убедиться, что сервер отвечает, откройте в браузере:
http://IP_вашего_сервера
Если видите стандартную страницу Apache, значит, всё работает
Можно проверить не занят ли порт для Apache другим процессом
sudo ss -tulpn | grep :80
Эта команда показывает, кто занимает порт 80. Если порт не занят Apache - проверьте наличие другого веб-сервера или Docker-контейнера.
Основные директории:
Виртуальный хост - это конфигурация вашего сайта.
Даже если у вас только один домен, привычка работать через отдельный конфиг полезная
Например ваш домен myproject.com
sudo mkdir -p /var/www/myproject
sudo chown -R $USER:$USER /var/www/myproject
Смена владельца нужна, чтобы вы могли спокойно редактировать файлы без sudo.
sudo nano /etc/apache2/sites-available/myproject.conf
Как работать с nano писали в статье: Основы работы с редактором nano: команды, сохранение, выход
Вставьте:
<VirtualHost *:80>
ServerName myproject.com
ServerAlias www.myproject.com
DocumentRoot /var/www/myproject
<Directory /var/www/myproject>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/myproject_error.log
CustomLog ${APACHE_LOG_DIR}/myproject_access.log combined
</VirtualHost>
NOTE:
В конфиг можно добавить и ip адрес вместо домена, для тестов или разработки.
sudo a2ensite myproject.conf
sudo systemctl reload apache2
Почему reload, а не restart? Reload мягко перечитывает конфигурацию. Если у вас прод-проект, такой подход снижает риск простоя.
Теперь по вашему домену или ip в браузере будет показываться сайт
На некоторых VDS firewall активен по умолчанию. Если Apache недоступен извне, дело может быть именно в UFW.
Проверяем статус:
sudo ufw status
Если UFW включён - разрешаем HTTP:
sudo ufw allow 'Apache'
Этот профиль автоматически открывает порт 80 и 443.
Подробнее про ufw: Защита сервера на Ubuntu или Debian с помощью ufw
iptables: Как открыть или закрыть порт в iptables
sudo apache2ctl configtest
Если увидите Syntax OK - можно перезагружать.
sudo systemctl reload apache2
или, если нужно обновить модули:
sudo systemctl restart apache2
sudo tail -f /var/log/apache2/error.log
Где и как смотреть логи в Linux - команды journalctl, tail и logrotate
Apache хорош тем, что функции можно подключать по мере необходимости.
sudo a2enmod rewrite
sudo systemctl reload apache2
Модуль нужен для ЧПУ-ссылок в CMS и многих приложениях.
sudo a2enmod ssl
Если планируете HTTPS
ls /etc/apache2/sites-enabled/
apache2ctl configtest
Если пройтись по этому списку - проблемы находятся почти всегда.
Apache - инструмент, который отлично подходит для старта и для серьезных проектов. На VDS с Ubuntu он устанавливается быстро, настраивается прозрачно, а структура конфигураций остаётся понятной