Инструменты пользователя

Инструменты сайта


software:linux_server:ubuntu_server_install_apache

Установка 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

Брандмауэр успешно активирован.

См. подробную статью о настройке брандмауэра через UFW

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

Наш веб-сервер уже должен быть установлен и запущен. Проверим 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

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

sudo chmod -R 755 /var/www/your_domain

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

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

Внутри добавьте следующий образец HTML:

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+O→INTER и закройте CTRL+X файл, когда закончите.

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

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

Вставьте следующий блок конфигурации, который аналогичен блоку по умолчанию, но обновлен для нашего нового каталога и имени домена:

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

Сохраните CTRL+O→INTER и закройте CTRL+X файл, когда закончите.

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

sudo a2ensite your_domain.conf

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

sudo a2dissite 000-default.conf

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

sudo apache2ctl configtest

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

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

sudo systemctl restart apache2

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

Пример виртуального хоста Apache

Подключение и отключение виртуальных хостов

Для того что-б подключить/отключить виртуальный хост который прописан в файле /etc/apache2/sites-available/mercurial нужно выполнить:

Для подключения

sudo a2ensite mercurial

Для отключения

sudo a2dissite mercurial

Знакомство с важными файлами и каталогами 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 определяет, насколько подробно будут содержаться журналы ошибок.

Заключение

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

Ссылки и Примечания

Только авторизованные участники могут оставлять комментарии.
software/linux_server/ubuntu_server_install_apache.txt · Последнее изменение: 2024/03/01 12:05 — vladpolskiy