Гид по технологиям

Установка и настройка Apache HTTP Server на Linux

6 min read DevOps Обновлено 30 Dec 2025
Установка и настройка Apache на Linux
Установка и настройка Apache на Linux

установка Apache на Linux, изображение процесса инсталляции

Apache — это мощный, гибкий и широко используемый open-source HTTP-сервер, который доставляет веб-контент по сети. Сервер отвечает на HTTP-запросы клиента, отдавая файлы HTML и другие ресурсы. Apache работает на многих ОС: Linux, Windows, macOS, Solaris и др., поэтому обычный компьютер легко превратить в веб-сервер.

Этот материал подробно объясняет установку и базовую настройку Apache HTTP Server на Linux, поясняет структуру каталогов, настройку виртуальных хостов и базовые операции по обслуживанию сервера.

Ключевые варианты запроса

  • установка apache на linux
  • настроить apache virtual host
  • как установить apache ubuntu
  • apache firewall allow 80
  • apache структура каталогов

1. Шаг 1 — Установка Apache на Linux

Перед установкой обновите базу пакетов и репозитории, чтобы избежать уязвимостей и получить последние исправления.

На Ubuntu / Debian:

sudo apt-get update
sudo apt-get install apache2 -y

На CentOS (старые релизы и RHEL):

sudo yum update
sudo yum install httpd -y

На Fedora:

sudo dnf update
sudo dnf install httpd -y

На Arch Linux:

sudo pacman -Syu
sudo pacman -S apache

Примечание: в Debian/Ubuntu пакет называется apache2, а в CentOS/Fedora — httpd. После установки в Debian-производных служба обычно запускается автоматически; в RHEL-производных её часто нужно запускать вручную.

2. Шаг 2 — Проверка статуса сервиса Apache

Чтобы узнать IP сервера в локальной сети, используйте:

hostname -i

Пример вывода:

192.168.43.130

Откройте в браузере http://<локальный_IP> — если вы увидите стандартную страницу Apache, установка прошла успешно.

главная страница Apache по умолчанию

Проверить версию Apache:

apache2 -v

(на CentOS/Fedora команда может быть httpd -v)

вывод версии Apache в терминале

Если служба не запущена (на CentOS/Fedora), запустите и проверьте статус:

sudo systemctl start httpd
sudo systemctl status httpd

Для Debian/Ubuntu:

sudo systemctl restart apache2
sudo systemctl status apache2

Совет: при отладке смотрите логи (см. раздел о логах ниже).

3. Шаг 3 — Настройка файрвола для доступа к Apache

Чтобы трафик доходил до сервера, откройте нужные порты в файрволе. Для Ubuntu с UFW:

Показать профили приложений, зарегистрированные службой:

sudo ufw app list

Ожидаемый вывод:

Available applications:
 Apache
 Apache Full
 Apache Secure
 OpenSSH

Коротко о профилях:

  • Apache — открывает только порт 80 (HTTP).
  • Apache Full — открывает порты 80 (HTTP) и 443 (HTTPS).
  • Apache Secure — открывает только порт 443 (HTTPS).

Если SSL ещё не настроен, разрешите трафик только на порт 80:

sudo ufw allow 'Apache'
sudo ufw status

настройки файрвола для Apache

Важно: если вы используете firewalld (CentOS/Fedora), команды и зоны отличаются (firewall-cmd –add-service=http –permanent и т.д.).

4. Основные директории и файлы Apache

После установки полезно понимать, где Apache хранит сайты, конфигурацию и логи.

Общие пути (сравнение):

ЗадачаDebian/UbuntuCentOS/Fedora
Корневой каталог сайтов/var/www/html/var/www/html
Главная конфигурация/etc/apache2/etc/httpd
Доступные виртуальные хосты/etc/apache2/sites-available/etc/httpd/conf.d
Включённые виртуальные хосты/etc/apache2/sites-enabled(синхронизируется с conf.d)
Логи ошибок/var/log/apache2/error.log/var/log/httpd/error_log
Логи доступа/var/log/apache2/access.log/var/log/httpd/access_log

Короткие пояснения:

  • /var/www/html — стандартный документ-рут; туда помещается index.html по умолчанию.
  • sites-available содержит файлы конфигурации виртуальных хостов; sites-enabled — ссылки на активные конфиги (Debian/Ubuntu).
  • Для включения/отключения сайтов в Debian используют a2ensite / a2dissite.

5. Пример настройки виртуального хоста (виртуальный хост)

Чтобы на одном сервере хостить несколько доменов, используйте виртуальные хосты (VirtualHost).

  1. Создайте каталог для сайта:
sudo mkdir -p /var/www/host_example/html
  1. Назначьте владельца и права:
sudo chown -R $USER:$USER /var/www/host_example
sudo chmod -R 755 /var/www/host_example
  1. Создайте файл страницы:




  Welcome to host_example!


  

You are running host_example on Ubuntu 18.04!

  1. Скопируйте шаблон конфигурации виртуального хоста (или создайте новый файл) в /etc/apache2/sites-available/host_example.conf:

    ServerAdmin admin@host_example
    ServerName host_example
    ServerAlias www.host_example
    DocumentRoot /var/www/host_example
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
  1. Активируйте сайт и отключите дефолтный, затем перезапустите Apache:
sudo a2ensite host_example.conf
sudo a2dissite 000-default.conf
sudo systemctl restart apache2
  1. Проверьте в браузере: http://host_example (для тестов локально можно использовать /etc/hosts с соответствующей записью).

6. Проверка конфигурации Apache

Перед перезагрузкой сервера полезно выполнить синтаксическую проверку:

sudo apache2ctl configtest

Ожидаемый вывод:

Syntax OK

Если есть ошибки, утилита укажет файл и строку. В логах (error.log) будет дополнительная информация.

7. Хостинг нескольких сайтов — основные шаги

  1. Создайте отдельный каталог сайта в /var/www для каждого домена.
  2. Создайте файл конфигурации виртуального хоста в sites-available.
  3. Привяжите ServerName и DocumentRoot.
  4. Активируйте сайт (a2ensite) и перезапустите Apache.
  5. Убедитесь, что DNS/hosts указывают на ваш сервер.

Замечание: порядок приоритетов виртуальных хостов определяется ServerName/ServerAlias и порядком чтения конфигураций.

8. Безопасность и базовые рекомендации

  • Обновляйте систему и пакеты безопасности регулярно.
  • Запускайте Apache от неповышенных привилегий; не храните секреты в каталоге с документами.
  • Настройте HTTPS (Let’s Encrypt) — используйте Certbot для автоматического получения и продления сертификатов.
  • Ограничьте список модулей: отключайте ненужные модули через a2dismod.
  • Ограничьте отображение ошибок для пользователей (оставляйте подробные логи для админов).

Пример включения HTTPS через Certbot (Debian/Ubuntu):

sudo apt-get install certbot python3-certbot-apache -y
sudo certbot --apache -d example.com -d www.example.com

9. Чек-листы и роли

Чек-лист для системного администратора:

  • Установлен и запущен Apache.
  • Открыт порт 80/443 в файрволе.
  • Настроены виртуальные хосты для всех доменов.
  • Проверены права на файлы и каталоги.
  • Включены автоматические обновления безопасности (по возможности).
  • Настроен и протестирован SSL (HTTPS).

Чек-лист для веб-разработчика:

  • Контент размещён в корректном DocumentRoot.
  • Статические файлы загружаются корректно.
  • Проверены заголовки ответа (Content-Type, Cache-Control).
  • Резервные копии конфигураций и данных.

10. Быстрый справочник команд (cheat sheet)

  • Проверить статус сервиса (Debian/Ubuntu): sudo systemctl status apache2
  • Проверить статус сервиса (CentOS/Fedora): sudo systemctl status httpd
  • Перезагрузить сервис: sudo systemctl restart apache2 (или httpd)
  • Включить сайт: sudo a2ensite имя_файла.conf
  • Отключить сайт: sudo a2dissite имя_файла.conf
  • Проверить конфигурацию: sudo apache2ctl configtest
  • Склонировать логи: /var/log/apache2/ (или /var/log/httpd/)

11. Частые ошибки и способы их устранения

  • Пустая страница/403 Forbidden: проверьте права на каталог и файлы (обычно 755 для каталогов, 644 для файлов).
  • 404 Not Found: убедитесь, что DocumentRoot и путь к файлу совпадают.
  • Сервер не запускается после изменения конфига: запустите apache2ctl configtest, исправьте синтаксические ошибки.
  • Проблемы с SELinux (CentOS/RHEL): временно разрешите контекст или настройте правильные контексты через chcon/restorecon, либо разрешите httpd_unified и httpd_sys_content_t для нужных путей.

12. Критерии приёмки

  • Сайт доступен по HTTP на порту 80 (или HTTPS на 443).
  • Для каждого домена настроен отдельный виртуальный хост с корректным DocumentRoot.
  • Логи ошибок не содержат критичных записей после минутного теста нагрузки.
  • Конфигурация проходит apache2ctl configtest без ошибок.

13. Мини-методология внедрения (для проекта)

  1. Подготовка сервера: обновления, резервное копирование настроек.
  2. Установка Apache и базовые тесты (localhost).
  3. Настройка виртуальных хостов и проверка локально через /etc/hosts.
  4. Настройка файрвола и, при необходимости, SELinux контекстов.
  5. Внедрение SSL и автоматизация продления сертификатов.
  6. Мониторинг и логирование (удалённые логи, ротация).

14. Глоссарий (1 строка)

  • VirtualHost: запись в конфиге Apache, позволяющая обслуживать несколько доменов на одном IP.
  • DocumentRoot: каталог, откуда Apache отдаёт файлы для конкретного хоста.
  • a2ensite/a2dissite: утилиты для включения/отключения виртуальных хостов (Debian/Ubuntu).
  • UFW/Firewalld: инструменты управления файрволом в Linux.

15. Резюме и рекомендации

Apache остаётся надёжным выбором для хостинга веб-сайтов благодаря модульной архитектуре и широкой поддержке ОС. Для продакшена рекомендуется настроить HTTPS, ограничить доступ и регулярно следить за обновлениями и логами. Важно тестировать конфигурации перед перезапуском и использовать отдельные виртуальные хосты для каждого домена.

Important: если у вас высокие требования по производительности и большим нагрузкам, сравните Apache с альтернативами (NGINX, Caddy) и выберите архитектуру, подходящую под ваш сценарий.

Краткие шаги для быстрого старта:

  1. Установите пакет apache2/httpd.
  2. Откройте порт в файрволе.
  3. Создайте виртуальный хост и тестовую страницу.
  4. Выполните apache2ctl configtest и перезапустите сервис.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Создать раскраску в Canva — полное руководство
Дизайн

Создать раскраску в Canva — полное руководство

Ограничить чувствительную рекламу в Google
Конфиденциальность

Ограничить чувствительную рекламу в Google

Приложение новостей на Python — Tkinter + News API
Python

Приложение новостей на Python — Tkinter + News API

Доступ к iCloud Drive на любом устройстве
Руководство

Доступ к iCloud Drive на любом устройстве

Канбан в Trello: создать и настроить доску
Проект‑менеджмент

Канбан в Trello: создать и настроить доску

Лучшие расширения Chrome для удобных рецептов
Кулинария

Лучшие расширения Chrome для удобных рецептов