Как установить веб-сервер Apache на Ubuntu 22.04

Введение

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

В этом руководстве вы узнаете, как установить веб-сервер Apache на вашем сервере Ubuntu 22.04.

Развертывайте свои приложения из GitHub с помощью платформы приложений DigitalOcean. Позвольте DigitalOcean масштабировать ваше приложение.

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

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

После завершения этой настройки войдите под своим пользователем, не являющимся root, и перейдите к первому шагу.

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

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

Начните с обновления локального индекса пакетов, чтобы отразить последние изменения:

  1. sudo apt update

Затем установите пакет apache2:

  1. sudo apt install apache2

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

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

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

Во время установки Apache регистрирует себя в UFW для предоставления нескольких профилей приложений, которые можно использовать для включения или отключения доступа к Apache через брандмауэр.

Перечислите профили приложений ufw, выполнив следующее:

  1. sudo ufw app list

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

Output
Available applications: Apache Apache Full Apache Secure OpenSSH

Как указано в выводе, доступны три профиля для Apache:

  • Apache: Этот профиль открывает только порт 80 (обычный, незашифрованный веб-трафик)
  • Apache Full: Этот профиль открывает как порт 80 (обычный, незашифрованный веб-трафик), так и порт 443 (зашифрованный трафик TLS/SSL)
  • Apache Secure: Этот профиль открывает только порт 443 (зашифрованный трафик TLS/SSL)

Рекомендуется включить самый ограничительный профиль, который все еще позволит трафику, который вы настроили. Поскольку вы еще не настроили SSL для вашего сервера в этом руководстве, вам нужно разрешить только трафик на порту 80:

  1. sudo ufw allow 'Apache'

Вы можете проверить изменение, проверив статус:

  1. sudo ufw status

Вывод предоставит список разрешенного HTTP-трафика:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

Как указано в выводе, профиль активирован для доступа к веб-серверу Apache.

Шаг 3 — Проверка вашего веб-сервера

В конце процесса установки Ubuntu 22.04 запускает Apache. Веб-сервер уже будет запущен и работать.

Убедитесь, что служба активна, запустив команду для инициализации системы systemd:

  1. sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese> Active: active (running) since Tue 2022-04-26 15:33:21 UTC; 43s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 5089 (apache2) Tasks: 55 (limit: 1119) Memory: 4.8M CPU: 33ms CGroup: /system.slice/apache2.service ├─5089 /usr/sbin/apache2 -k start ├─5091 /usr/sbin/apache2 -k start └─5092 /usr/sbin/apache2 -k start

Как подтверждается этим выводом, служба успешно запущена. Однако лучший способ проверить это – запросить страницу из Apache.

Вы можете получить доступ к ​​стандартной стартовой странице Apache, чтобы подтвердить правильную работу программного обеспечения через свой IP-адрес. Если вы не знаете IP-адрес вашего сервера, вы можете получить его несколькими способами из командной строки.

Попробуйте написать следующее в командной строке вашего сервера:

  1. hostname -I

Вы получите несколько адресов, разделенных пробелами. Вы можете попробовать каждый из них в вашем веб-браузере, чтобы определить, работают ли они.

Другой вариант – использовать бесплатный инструмент icanhazip.com. Это веб-сайт, который при доступе возвращает публичный IP-адрес вашего компьютера, прочитанный из другого местоположения в Интернете:

  1. curl -4 icanhazip.com

Когда у вас есть IP-адрес вашего сервера, введите его в адресную строку вашего браузера:

http://your_server_ip

Вы увидите стандартную веб-страницу Apache для Ubuntu 22.04, как на следующем изображении:

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

Шаг 4 — Управление процессом Apache

Теперь, когда ваш веб-сервер запущен и работает, давайте рассмотрим некоторые основные команды управления с помощью systemctl.

Чтобы остановить ваш веб-сервер, выполните:

  1. sudo systemctl stop apache2

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

  1. sudo systemctl start apache2

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

  1. sudo systemctl restart apache2

Если вы просто вносите изменения в конфигурацию, Apache часто может перезагрузиться без разрыва соединений. Для этого используйте следующую команду:

  1. sudo systemctl reload apache2

По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если это не то, что вам нужно, отключите это поведение, запустив:

  1. sudo systemctl disable apache2

Чтобы снова включить автоматический запуск службы при загрузке, выполните:

  1. sudo systemctl enable apache2

Теперь Apache будет автоматически запускаться при загрузке сервера снова.

При использовании веб-сервера Apache вы можете использовать виртуальные хосты (аналогичные блокам сервера в Nginx), чтобы инкапсулировать детали конфигурации и размещать более одного домена на одном сервере. Мы настроим домен с именем ваш_домен, но вам следует заменить это своим собственным именем домена.

Информация: Если вы настраиваете доменное имя с помощью DigitalOcean, обратитесь к нашей документации по сетевому взаимодействию.

Apache на Ubuntu 22.04 по умолчанию имеет один серверный блок, настроенный на обслуживание документов из каталога /var/www/html. Хотя это хорошо работает для одного сайта, это может стать неудобным, если вы хостите несколько сайтов. Вместо изменения /var/www/html создайте структуру каталогов внутри /var/www для сайта ваш_домен, оставив /var/www/html на месте в качестве каталога по умолчанию для обслуживания, если запрос клиента не соответствует ни одному другому сайту.

Создайте каталог для ваш_домен следующим образом:

  1. sudo mkdir /var/www/your_domain

Затем назначьте владельца каталога пользователю, под которым вы в настоящее время вошли, с помощью переменной среды $USER:

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

Если вы не модифицировали значение umask, устанавливающее права доступа по умолчанию, права доступа вашего корневого веб-каталога должны быть правильными. Чтобы убедиться, что ваши разрешения правильные и позволяют владельцу читать, записывать и выполнять файлы, предоставляя только права на чтение и выполнение группам и другим, вы можете ввести следующую команду:

  1. sudo chmod -R 755 /var/www/your_domain

Затем создайте образец страницы index.html с помощью nano или вашего любимого редактора:

  1. 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>

Сохраните и закройте файл, когда закончите. Если вы используете nano, вы можете сделать это, нажав CTRL + X, затем Y и ENTER.

Чтобы Apache мог обслуживать этот контент, необходимо создать файл виртуального хоста с правильными директивами. Вместо того чтобы изменять файл конфигурации по умолчанию, расположенный в /etc/apache2/sites-available/000-default.conf напрямую, создайте новый файл в /etc/apache2/sites-available/ваш_домен.conf:

  1. 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 до нашего нового каталога и ServerAdmin до электронной почты, к которой может получить доступ администратор сайта ваш_домен. Мы также добавили две директивы: ServerName, которая устанавливает базовый домен, который будет соответствовать этому определению виртуального хоста, и ServerAlias, который определяет дополнительные имена, которые будут соответствовать, как если бы они были базовым именем.

Сохраните и закройте файл, когда закончите.

Теперь включите файл с помощью инструмента a2ensite:

  1. sudo a2ensite your_domain.conf

Отключите сайт по умолчанию, определенный в 000-default.conf:

  1. sudo a2dissite 000-default.conf

Затем проверьте наличие ошибок конфигурации:

  1. sudo apache2ctl configtest

Вы должны получить следующий вывод:

Output
. . . Syntax OK

Перезапустите Apache, чтобы применить ваши изменения:

  1. sudo systemctl restart apache2

Теперь Apache будет обслуживать ваше доменное имя. Вы можете проверить это, перейдя на http://ваш_домен, где вы увидите что-то вроде следующего:

Шаг 6 – Ознакомление с важными файлами и каталогами Apache

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

Содержание

  • /var/www/html: Фактическое веб-содержимое, которое по умолчанию состоит только из стандартной веб-страницы Apache, которую вы видели ранее, обслуживается из каталога /var/www/html. Это можно изменить, изменив файлы конфигурации Apache.

Конфигурация сервера

  • /etc/apache2: Каталог конфигурации Apache. Все файлы конфигурации Apache находятся здесь.
  • /etc/apache2/apache2.conf: Основной файл конфигурации Apache. Его можно изменить, чтобы внести изменения в глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов в каталоге конфигурации.
  • /etc/apache2/ports.conf: Этот файл указывает порты, на которых будет слушать Apache. По умолчанию Apache слушает порт 80 и дополнительно слушает порт 443, когда включен модуль, обеспечивающий возможности SSL.
  • /etc/apache2/sites-available/: Каталог, где можно хранить персонализированные виртуальные хосты для каждого сайта. Apache не будет использовать файлы конфигурации, найденные в этом каталоге, если они не связаны с каталогом sites-enabled. Обычно в этом каталоге выполняется вся конфигурация блоков сервера, которая затем активируется путем создания ссылок на другой каталог с помощью команды a2ensite.
  • /etc/apache2/sites-enabled/: Каталог, где хранятся активированные виртуальные хосты для каждого сайта. Обычно они создаются путем создания ссылок на файлы конфигурации, найденные в каталоге sites-available, с помощью команды a2ensite. Apache считывает файлы конфигурации и ссылки, найденные в этом каталоге, при запуске или перезагрузке для компиляции полной конфигурации.
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: Эти каталоги имеют ту же связь, что и каталоги sites-available и sites-enabled, но используются для хранения фрагментов конфигурации, которые не относятся к виртуальному хосту. Файлы в каталоге conf-available можно активировать с помощью команды a2enconf и деактивировать с помощью команды a2disconf.
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: Эти каталоги содержат доступные и включенные модули, соответственно. Файлы, заканчивающиеся на .load, содержат фрагменты для загрузки конкретных модулей, а файлы, заканчивающиеся на .conf, содержат конфигурацию для этих модулей. Модули могут быть включены и отключены с помощью команд a2enmod и a2dismod.

Журналы сервера

  • /var/log/apache2/access.log: По умолчанию каждый запрос к вашему веб-серверу записывается в этот журнальный файл, если только Apache не настроен иначе.
  • /var/log/apache2/error.log: По умолчанию все ошибки записываются в этот файл. Директива LogLevel в конфигурации Apache определяет, насколько подробными будут журналы ошибок.

Вывод

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

Если вы хотите построить более полный стек приложений, вы можете прочитать эту статью о конфигурации стека LAMP на Ubuntu 22.04

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-the-apache-web-server-on-ubuntu-22-04