MAATRIX / Блог / Установка и базовая настройка Apache на VPS

Установка и базовая настройка Apache на VPS

Блог MAATRIX · 2026-07-07

Apache — проверенный временем веб-сервер с гибкой системой модулей и удобными .htaccess. Ставим его на чистый VPS, настраиваем виртуальные хосты, включаем нужные модули и выпускаем бесплатный HTTPS — с рабочими командами для Ubuntu и Debian.

Когда выбирают Apache

['Apache остаётся стандартом для многих CMS и PHP-приложений: он понимает .htaccess (правила прямо в каталоге сайта, без доступа к главному конфигу), имеет богатую экосистему модулей и отлично документирован. Для классического хостинга сайтов и legacy-приложений он часто удобнее Nginx.', '
  • .htaccess — настройки на уровне папки, удобно для shared-подобных схем.
  • mod_rewrite — мощные правила ЧПУ и редиректов.
  • Модульность — включаешь только то, что нужно.
', 'Часто Apache ставят в связке с PHP-FPM или прячут за Nginx-фронтендом. Начнём с базовой установки на чистый сервер.']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для сайта на Apache

Устанавливаем Apache

['На Ubuntu/Debian пакет называется apache2. Обновляемся и ставим.', '
sudo apt update && sudo apt -y install apache2
', 'Сразу включим автозапуск и проверим, что сервис поднялся.', '
sudo systemctl enable --now apache2\nsudo systemctl status apache2
', 'Открой IP сервера в браузере — должна показаться дефолтная страница Apache. Если не открывается, почти всегда дело в файрволе (см. ниже) или занятом 80 порту.', 'Проверить, кто держит 80 порт, помогает ss — частая причина конфликта в том, что порт уже занял ранее установленный Nginx.', "
sudo ss -tlnp | grep ':80'
"]

Открываем порты в файрволе

['Если включён ufw, Apache не будет доступен снаружи, пока не разрешишь порты. У Apache есть готовые профили ufw.', "
sudo ufw allow OpenSSH\nsudo ufw allow 'Apache Full'\nsudo ufw enable\nsudo ufw status
", 'Профиль Apache Full открывает и 80 (HTTP), и 443 (HTTPS). Если нужен только незашифрованный доступ на время настройки — используй Apache вместо Apache Full, но в бой всегда выводи с HTTPS.']

Настраиваем virtual host

['Виртуальный хост описывает один сайт: домен и каталог с файлами. Конфиги живут в /etc/apache2/sites-available/. Создадим хост для домена.', "
sudo mkdir -p /var/www/example.com/public\nsudo tee /etc/apache2/sites-available/example.com.conf > /dev/null <<'EOF'\n<VirtualHost *:80>\n    ServerName example.com\n    ServerAlias www.example.com\n    DocumentRoot /var/www/example.com/public\n    ErrorLog ${APACHE_LOG_DIR}/example_error.log\n    CustomLog ${APACHE_LOG_DIR}/example_access.log combined\n</VirtualHost>\nEOF
", 'Активируем сайт, отключаем дефолтный и перезагружаем. Apache проверяет конфиг командой apachectl configtest.', '
sudo a2ensite example.com.conf\nsudo a2dissite 000-default.conf\nsudo apachectl configtest\nsudo systemctl reload apache2
']

Модули и HTTPS

['Модули включаются утилитой a2enmod. Для ЧПУ и заголовков почти всегда нужны rewrite и headers.', '
sudo a2enmod rewrite headers ssl\nsudo systemctl restart apache2
', "Бесплатный сертификат Let's Encrypt проще всего выпустить через certbot с плагином Apache — он сам поправит конфиг и настроит редирект на HTTPS.", '
sudo apt -y install certbot python3-certbot-apache\nsudo certbot --apache -d example.com -d www.example.com
', 'certbot спросит email и согласие, выпустит сертификат и предложит включить автоматический редирект с HTTP на HTTPS — соглашайся. Обновление сертификата ставится в cron автоматически, проверить можно так.', '
sudo certbot renew --dry-run
']

Частые ошибки

['
  • .htaccess не работает — для него в конфиге каталога должно стоять AllowOverride All, по умолчанию оно None.
  • Конфликт с Nginx — оба веб-сервера не могут одновременно слушать 80/443; либо разнеси порты, либо оставь один.
  • Забыли configtest — синтаксическая ошибка в конфиге не даст Apache перезапуститься; всегда проверяй перед reload.
  • Права на каталог — файлы сайта должны быть доступны пользователю www-data, иначе 403.
', 'Логи ошибок — первый источник правды при разборе проблем. Смотри их в реальном времени.', '
sudo tail -f /var/log/apache2/example_error.log
', 'Apache стабильно держит нагрузку, но при десятках сайтов на сервере многое упирается в диск и ядро — быстрый NVMe и AMD EPYC у MAATRIX заметно ускоряют отдачу статики и работу PHP.']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для сайта на Apache

Частые вопросы

Apache или Nginx — что ставить?

Apache удобнее для CMS с .htaccess и legacy-приложений, Nginx — для высокой конкуррентности и статики. Часто их совмещают: Nginx спереди, Apache с PHP сзади.

Можно ли держать несколько сайтов на одном Apache?

Да, для этого и нужны virtual hosts: каждый сайт — отдельный конфиг с своим ServerName и DocumentRoot, все на одном IP.

Как включить PHP в Apache?

Поставь php и libapache2-mod-php или, лучше, php-fpm с проксированием — FPM производительнее и не блокирует воркеры Apache.