Поиск по сайту:

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


Введение

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

В этом руководстве вы установите веб-сервер Apache на сервер Debian 11.

Предпосылки

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

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

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

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

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

  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: AIM Bonjour CIFS . . . WWW WWW Cache WWW Full WWW Secure . . .

Профили Apache начинаются с WWW:

  • WWW: этот профиль открывает только порт 80 (обычный незашифрованный веб-трафик)
  • WWW Cache: этот профиль открывает только порт 8080 (иногда используется для кэширования и веб-прокси)
  • WWW Full: этот профиль открывает как порт 80 (обычный незашифрованный веб-трафик), так и порт 443 (зашифрованный трафик TLS/SSL).
  • WWW Secure: этот профиль открывает только порт 443 (зашифрованный трафик TLS/SSL)

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

  1. sudo ufw allow 'WWW'

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

  1. sudo ufw status

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

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

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

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

В конце процесса установки Debian 11 запускает 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 Wed 2022-07-06 22:05:45 UTC; 23s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 2796 (apache2) Tasks: 55 (limit: 9509) Memory: 21.0M CPU: 67ms CGroup: /system.slice/apache2.service ├─2796 /usr/sbin/apache2 -k start ├─2798 /usr/sbin/apache2 -k start └─2799 /usr/sbin/apache2 -k start

Эти выходные данные подтверждают, что служба успешно запущена. Однако лучший способ проверить это — запросить страницу у Apache.

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

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

  1. hostname -I

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

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

  1. sudo apt install curl

Затем используйте curl, чтобы получить icanhazip.com с помощью IPv4:

  1. curl -4 icanhazip.com

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

http://your_server_ip

Вы должны увидеть стандартную веб-страницу Debian 11 Apache:

Эта страница указывает на то, что 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 теперь будет запускаться автоматически при повторной загрузке сервера.

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

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

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

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

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

  1. sudo mkdir -p /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. nano /var/www/your_domain/index.html

Внутри добавьте следующий образец 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/< mark>ваш_домен.conf:

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

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

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

  1. sudo a2ensite your_domain.conf

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

  1. sudo a2dissite 000-default.conf

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

  1. sudo apache2ctl configtest

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

Output
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message 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 в Debian 11.