Как установить Apache на Ubuntu

Apache — один из старейших и наиболее распространённых веб-серверов в мире. За десятилетия активного развития он обзавёлся богатой экосистемой модулей, гибкой системой конфигурации и поддержкой практически любых сценариев веб-хостинга — от небольших личных сайтов до крупных корпоративных порталов.

В этом руководстве мы разберём установку Apache на Ubuntu 22.04: настроим брандмауэр, изучим базовые команды управления службой и создадим виртуальные хосты для размещения нескольких сайтов на одном сервере.

Содержание

Предварительные требования

Для работы по этому руководству вам понадобится сервер Ubuntu 22.04 с настроенным пользователем без прав root, имеющим привилегии sudo, и активным брандмауэром UFW. Войдите в систему под этим пользователем — и можно приступать.

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

Apache присутствует в стандартных репозиториях Ubuntu, поэтому для установки достаточно двух команд. Сначала обновим индекс пакетов, чтобы получить актуальную информацию о доступных версиях:

sudo apt update

Теперь установим сам веб-сервер:

sudo apt install apache2

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

Шаг 2. Настройка брандмауэра

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

sudo ufw app list
Output
Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

Каждый профиль открывает определённый набор портов: Apache — только порт 80 для обычного HTTP-трафика, Apache Full — одновременно порты 80 и 443, Apache Secure — исключительно порт 443 для зашифрованных соединений. Хорошей практикой считается разрешать минимально необходимый трафик. Поскольку SSL мы пока не настраивали, достаточно открыть порт 80:

sudo ufw allow 'Apache'

Проверьте, что правило применилось:

sudo ufw status
Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Apache                     ALLOW       Anywhere                
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Apache (v6)                ALLOW       Anywhere (v6)

Профиль активирован, входящий HTTP-трафик разрешён. Переходим к проверке самого сервера.

Шаг 3. Проверка работы веб-сервера

Ubuntu запускает Apache автоматически сразу после установки. Убедитесь, что служба работает:

sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-04-23 22:36:30 UTC; 20h ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 29435 (apache2)
      Tasks: 55 (limit: 1137)
     Memory: 8.0M
     CGroup: /system.slice/apache2.service
             ├─29435 /usr/sbin/apache2 -k start
             ├─29437 /usr/sbin/apache2 -k start
             └─29438 /usr/sbin/apache2 -k start

Статус active (running) подтверждает, что сервер запущен. Для окончательной проверки откройте страницу по IP-адресу сервера в браузере. Если IP-адрес вам неизвестен, определите его одним из двух способов — через встроенную команду:

hostname -I

Или через внешний сервис, который вернёт публичный адрес вашего сервера:

curl -4 icanhazip.com

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

http://your_server_ip

Если вы видите стандартную страницу приветствия Ubuntu/Apache — установка прошла успешно и сервер работает корректно.

Шаг 4. Управление службой Apache

Для повседневного администрирования вам понадобятся несколько стандартных команд systemctl. Остановить веб-сервер:

sudo systemctl stop apache2

Запустить остановленный сервер:

sudo systemctl start apache2

Полностью перезапустить службу (соединения на момент перезапуска будут прерваны):

sudo systemctl restart apache2

Применить изменения конфигурации без разрыва активных соединений:

sudo systemctl reload apache2

Отключить автоматический запуск Apache при старте системы:

sudo systemctl disable apache2

Вернуть автозапуск:

sudo systemctl enable apache2

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

Шаг 5. Настройка виртуальных хостов

Виртуальные хосты в Apache — это аналог серверных блоков в Nginx. Механизм позволяет обслуживать несколько сайтов на одной машине, изолируя конфигурацию каждого домена в отдельном файле. По умолчанию Apache работает с директорией /var/www/html, но при хостинге нескольких проектов удобнее создать собственную структуру для каждого домена.

Создайте директорию для вашего сайта (замените your_domain на реальное доменное имя):

sudo mkdir /var/www/your_domain

Назначьте текущего пользователя владельцем директории:

sudo chown -R $USER:$USER /var/www/your_domain

Установите корректные права доступа:

sudo chmod -R 755 /var/www/your_domain

Создайте тестовую страницу:

sudo nano /var/www/your_domain/index.html

Добавьте простую HTML-разметку:

/var/www/your_domain/index.html
<html>
    <head>
        <title>Welcome to Your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain virtual host is working!</h1>
    </body>
</html>

Сохраните файл: Ctrl+X, затем Y и Enter. Теперь создайте конфигурационный файл виртуального хоста — лучше в отдельном файле, а не редактировать конфигурацию по умолчанию:

sudo nano /etc/apache2/sites-available/your_domain.conf

Добавьте следующий блок конфигурации:

/etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Здесь DocumentRoot указывает на директорию с файлами сайта, ServerName задаёт основное доменное имя, а ServerAlias — дополнительные имена, которые будут обрабатываться этим же хостом. Сохраните файл и активируйте виртуальный хост с помощью утилиты a2ensite:

sudo a2ensite your_domain.conf

Отключите стандартный хост, чтобы он не конфликтовал с новым:

sudo a2dissite 000-default.conf

Проверьте синтаксис конфигурации:

sudo apache2ctl configtest
Output
Syntax OK

Если ошибок нет, перезапустите Apache для применения изменений:

sudo systemctl restart apache2

Откройте http://your_domain в браузере — должна отобразиться созданная тестовая страница.

Шаг 6. Важные файлы и директории

Разберёмся со структурой Apache, чтобы в дальнейшем легко ориентироваться в конфигурации.

Контент: файлы сайта по умолчанию хранятся в /var/www/html. Эта директория используется как резервная — когда ни один виртуальный хост не совпал с запросом клиента.

Конфигурация сервера: все конфигурационные файлы находятся в /etc/apache2. Главный из них — /etc/apache2/apache2.conf, он управляет глобальными параметрами и подгружает остальные файлы конфигурации. Файл /etc/apache2/ports.conf определяет, на каких портах Apache принимает соединения — по умолчанию это порт 80, а при активированном SSL добавляется порт 443.

Конфигурации виртуальных хостов создаются в /etc/apache2/sites-available/ и активируются через символические ссылки в /etc/apache2/sites-enabled/ с помощью команды a2ensite. Аналогичная схема работает для фрагментов конфигурации в директориях conf-available и conf-enabled, а также для модулей в mods-available и mods-enabled — для управления ими используются команды a2enconf, a2disconf, a2enmod и a2dismod.

Журналы: все входящие запросы фиксируются в /var/log/apache2/access.log, ошибки — в /var/log/apache2/error.log. Уровень детализации журнала ошибок регулируется директивой LogLevel в конфигурации Apache.

Рекомендуем также изучить наше руководство «Как защитить Apache с помощью Let’s Encrypt на Ubuntu».

Заключение

Мы прошли полный цикл настройки Apache на Ubuntu 20.04: установили сервер, открыли нужные порты в брандмауэре, разобрались с командами управления службой и настроили виртуальные хосты для хостинга нескольких доменов. Теперь у вас есть работающий веб-сервер и понимание его структуры — этого достаточно для уверенного старта.

Надёжная площадка для вашего сервера

Хотите развернуть Apache на стабильном хостинге без лишних хлопот? Мы предлагаем производительные VPS и выделенные серверы с круглосуточной технической поддержкой и прозрачными тарифами.

Оставьте заявку — и ваш сервер будет готов уже сегодня!

Для реализации основных услуг и функций нашего сайта, а также для сбора данных о том, как посетители взаимодействуют с нашими сайтом, продуктами и услугами, мы применяем различные инструменты, включая файлы cookie. Нажимая «Принимаю», вы соглашаетесь с текущими правилами и условиями использования сайта и даете разрешение на использование этих данных. В противном случае, пожалуйста, покиньте сайт.

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: