Установка и базовая настройка Apache на VPS
Apache — проверенный временем веб-сервер с гибкой системой модулей и удобными .htaccess. Ставим его на чистый VPS, настраиваем виртуальные хосты, включаем нужные модули и выпускаем бесплатный HTTPS — с рабочими командами для Ubuntu и Debian.
Содержание
Когда выбирают Apache
['Apache остаётся стандартом для многих CMS и PHP-приложений: он понимает.htaccess (правила прямо в каталоге сайта, без доступа к главному конфигу), имеет богатую экосистему модулей и отлично документирован. Для классического хостинга сайтов и legacy-приложений он часто удобнее Nginx.', '- .htaccess — настройки на уровне папки, удобно для shared-подобных схем.
- mod_rewrite — мощные правила ЧПУ и редиректов.
- Модульность — включаешь только то, что нужно.
Нужен сервер под эту задачу?
Разверните 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.