Это старая версия документа!
Содержание
Установка Apache HTTP Server в Ubuntu 22.04
Введение
Apache HTTP Server является наиболее широко используемым веб-сервером в мире. Он предоставляет множество мощных функций, включая динамически загружаемые модули, надежную поддержку мультимедиа и обширную интеграцию с другим популярным программным обеспечением.
В этом руководстве мы проследим, как установить Apache HTTP Server на сервер Ubuntu 22.04.
Подключимся к нашему серверу через программу PuTTY, введем логин указанный при установке нашего сервера и пароль.
Предварительные условия
Прежде чем приступить к работе с этим руководством, на вашем сервере должен быть настроен обычный пользователь без полномочий root с привилегиями sudo. Кроме того, вам необходимо включить базовый брандмауэр для блокировки несущественных портов. Вы можете узнать, как настроить учетную запись обычного пользователя и настроить брандмауэр для вашего сервера, следуя нашему руководству по начальной настройке сервера для Ubuntu 20.04 .
Если у вас есть доступная учетная запись, для начала войдите в систему как пользователь без полномочий root.
Установка Apache
Apache доступен в репозиториях программного обеспечения Ubuntu по умолчанию, что позволяет установить его с помощью обычных инструментов управления пакетами.
Начнем с обновления локального индекса пакетов, чтобы отразить последние изменения исходного кода:
sudo apt update
Введем повторно пароль и дождемся окончания обновления индекса пакетов.
Установим непосредственно сам пакет Apache HTTP Server
sudo apt install apache2
После подтверждения установки apt install
Do you want to continue? [Y/n] **Y**
будет установлен Apache и все необходимые зависимости.
Настройка брандмауэра
Перед тестированием Apache необходимо изменить настройки брандмауэра, чтобы разрешить внешний доступ к веб-портам по умолчанию. Предполагая, что вы следовали инструкциям, указанным в предварительных требованиях, у вас должен быть настроен брандмауэр UFW, ограничивающий доступ к вашему серверу.
Во время установки Apache регистрируется в UFW, чтобы предоставить несколько профилей приложений, которые можно использовать для включения или отключения доступа к Apache через брандмауэр.
Перечислите ufw профили приложений, набрав:
sudo ufw app list
Как видно из результатов, для Apache доступны три профиля:
- Apache : этот профиль открывает только порт 80 (обычный незашифрованный веб-трафик).
- Apache Full : этот профиль открывает как порт 80 (обычный незашифрованный веб-трафик), так и порт 443 (зашифрованный трафик TLS/SSL).
- Apache Secure : этот профиль открывает только порт 443 (трафик с шифрованием TLS/SSL).
Рекомендуется включить наиболее ограничительный профиль, который по-прежнему будет разрешать настроенный вами трафик. Поскольку в этом руководстве мы еще не настроили SSL для нашего сервера, нам нужно будет разрешить трафик только через порт 80:
sudo ufw allow 'Apache'
Правила обновлены и вы можете проверить изменение, набрав:
sudo ufw status
В результате, при включенном брандмауэре, будет предоставлен список разрешенного HTTP-трафика с уведомлением запись «Status: active» и мы смело переходим к главе Проверка вашего веб-сервера
В случае же отключенного брандмауэра, мы получим запись «Status: inactive»
Включение брандмауэра UFW в Ubuntu
Как только мы обнаружим, что брандмауэр не активен, проверим, добавлены ли к нему какие-либо правила. Эта команда будет работать, даже если брандмауэр неактивен.
sudo ufw show added
Проверим правила и убедимся, что если мы включим брандмауэр, с нашим сервером все будет в порядке. А затем включим брандмауэр с подтверждением наших действий клавишей Y.
sudo ufw enable
Снова проверим статус брандмауэра UFW ранее использованной командой:
sudo ufw status
Брандмауэр успешно активирован.
Проверка вашего веб-сервера
Наш веб-сервер уже должен быть установлен и запущен. Проверим systemd систему инициализации, чтобы убедиться, что служба работает, набрав:
sudo systemctl status apache2
Как подтверждает этот вывод, служба запущена успешно. Однако лучший способ проверить это — запросить страницу у Apache.
Вы можете получить доступ к целевой странице Apache по умолчанию, чтобы убедиться, что программное обеспечение работает правильно через ваш IP-адрес. Если вы не знаете IP-адрес вашего сервера, вы можете получить его несколькими способами из командной строки.
Попробуйте ввести это в командной строке вашего сервера:
hostname -I
Другой вариант — использовать инструмент Icanhazip, который должен предоставить вам ваш общедоступный IP-адрес, прочитанный из другого места в Интернете:
curl -4 icanhazip.com
Когда у вас есть IP-адрес вашего сервера, введите его в адресную строку браузера (у меня это 192.168.1.145):
http://192.168.1.145
Вы должны увидеть веб-страницу Apache Ubuntu 22.04 по умолчанию:
Эта страница указывает на то, что Apache работает правильно. Он также включает некоторую базовую информацию о важных файлах Apache и расположении каталогов.
Управление процессом Apache
Теперь, когда ваш веб-сервер настроен и работает, давайте рассмотрим некоторые основные команды управления с использованием systemctl.
Чтобы остановить ваш веб-сервер, введите:
sudo systemctl stop apache2
Чтобы запустить веб-сервер, когда он остановлен, введите:
sudo systemctl start apache2
Чтобы перезапустить веб-сервер, когда это необходимо, введите:
sudo systemctl restart apache2
Если вы просто вносите изменения в конфигурацию, Apache часто может перезагрузиться, не разрывая соединения. Для этого используйте эту команду:
sudo systemctl reload apache2
По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если это не то, что вам нужно, отключите это поведение, набрав:
sudo systemctl disable apache2
Чтобы снова включить запуск службы при загрузке, введите:
sudo systemctl enable apache2
Теперь Apache должен запускаться автоматически при повторной загрузке сервера.
Настройка виртуальных хостов (рекомендуется)
При использовании веб-сервера Apache вы можете использовать виртуальные хосты (аналогично серверным блокам в Nginx) для инкапсуляции деталей конфигурации и размещения более одного домена на одном сервере. Мы создадим домен под названием your_domain, но вам следует заменить его своим собственным доменным именем.
В Apache в Ubuntu 22.04 по умолчанию включен один серверный блок, который настроен для обслуживания документов из /var/www/html каталога. Хотя это хорошо работает для одного сайта, это может стать громоздким, если вы размещаете несколько сайтов. Вместо изменения /var/www/html, давайте создадим структуру каталогов /var/www для сайта your_domain, оставив ее /var/www/html в качестве каталога по умолчанию, который будет обслуживаться, если запрос клиента не соответствует никаким другим сайтам.
Создайте каталог для your_domain следующим образом:
sudo mkdir /var/www/your_domain
Затем назначьте владельца каталога с помощью $USER переменной среды:
sudo chown -R $USER:$USER /var/www/your_domain