Установка веб-сервера Apache в Ubuntu 22.04

Скачать Установка веб-сервера Apache в Ubuntu 22.04
Недавно искали:

Itnull

Команда форума
Администратор
Регистрация
22.05.13
Сообщения
25.531
Реакции
9.481
Веб-сайт
itnull.me
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #1

1: Установка Apache​

Apache есть в стандартном репозитории Ubuntu, поэтому его можно установить с помощью стандартного пакетного менеджера.

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

Код:
sudo apt update

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

Код:
sudo apt install apache2

После этого apt установит Apache и все необходимые зависимости.

2: Настройка брандмауэра​

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

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

Чтобы посмотреть список профилей ufw введите:

Код:
sudo ufw app list

Выводится список:

Available applications:
Код:
Apache
  Apache Full
  Apache Secure
  OpenSSH
Из вывода получаем, что для 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

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                 
Apache                     ALLOW       Anywhere               
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Apache (v6)                ALLOW       Anywhere (v6)
Как показывает результат, профиль был активирован и доступ к веб-серверу Apache разрешен.

3: Тестирование веб-сервера​

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

С помощью системы инициализации systemd мы можем убедиться, что он запустился. Запросите его состояние:

Код:
sudo systemctl status apache2

Получаем вывод:

a
Код:
pache2.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
Согласно этому выводу сервис успешно запустился. Но лучше ещё запросить страницу Apache, чтобы убедиться, что веб-сервер работает правильно.

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

Код:
hostname -I

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

Другой вариант — с помощью ресурса Icanhazip, который должен предоставить вам внешний IP-адрес, прочитанный из другого места в Интернете:

Код:
curl -4 icanhazip.com

Узнав свой внешний IP-адрес, введите в строку браузера:

Код:
http://your_server_ip

Вы увидите стандартную страницу Apache для Ubuntu:

small_apache_default.png


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

4: Управление процессами Apache​

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

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

Код:
sudo systemctl stop apache2

Запустить его поможет команда:

Код:
sudo systemctl start apache2

Для перезапуска используйте команду:

Код:
sudo systemctl restart apache2

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

Код:
sudo systemctl reload apache2

По умолчанию Apache добавлен в автозагрузку (запускается автоматически вместе с сервером). Чтобы удалить этот сервис из автозагрузки, отключите его:

Код:
sudo systemctl disable apache2

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

Код:
sudo systemctl enable apache2

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

5: Настройка виртуальных хостов (рекомендуется)​

На веб-сервере Apache вы можете использовать виртуальные хосты (в Nginx это блоки server) для изоляции настроек и размещения нескольких доменов на одном сервере. Здесь используется условный домен example.com, который нужно заменить доменом вашего сайта.

В Ubuntu 22.04 веб-сервер Apache по умолчанию предоставляет один включенный виртуальный хост, который обслуживает каталог /var/www/html. Этого хватит для работы одного сайта, но если вы хотите разместить несколько сайтов, вам нужно создать новые виртуальные хосты. Создайте структуру каталогов в /var/www для сайта example.com, а /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:
HTML:
<html>
    <head>
        <title>Welcome to Your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain virtual host is working!</h1>
    </body>
</html>
Сохраните и закройте файл.

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

Код:
sudo nano /etc/apache2/sites-available/your_domain.conf

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

Apache:
<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 – определяет дополнительные имена, которые должны соответствовать базовому имени.

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

Включим файл с помощью a2ensite:

Код:
sudo a2ensite your_domain.conf

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

Код:
sudo a2dissite 000-default.conf

Далее проверим ошибки настроек:

Код:
sudo apache2ctl configtest

Вывод должен быть следующим:

Код:
Syntax OK

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

Код:
sudo systemctl restart apache2

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

vhost_your_domain.png


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 определяет, насколько подробную информацию будут содержать журналы ошибок.
 
Назад
Сверху Снизу