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

Вступление

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

В этом руководстве мы объясним, как установить веб-сервер Apache на ваш сервер Debian 10.

Предпосылки

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

Если у вас есть доступная учетная запись, войдите в систему как пользователь без полномочий root, чтобы начать.

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

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

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

sudo apt update

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

sudo apt install apache2

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

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

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

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

Перечислите профили приложений + ufw +, набрав:

sudo ufw app list

Вы увидите список профилей приложения:

OutputAvailable 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:

sudo ufw allow 'WWW'

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

sudo ufw status

Вы должны увидеть разрешенный HTTP-трафик в отображаемом выводе:

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
WWW                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
WWW (v6)                   ALLOW       Anywhere (v6)

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

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

В конце процесса установки Debian 10 запускает Apache. Веб-сервер уже должен быть запущен.

Проверьте систему + systemd + init, чтобы убедиться, что служба работает, набрав:

sudo systemctl status apache2
Output● apache2.service - The Apache HTTP Server
  Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Active: active (running) since Fri 2019-07-19 15:33:01 UTC; 4min 13s ago
    Docs: https://httpd.apache.org/docs/2.4/

. . .

Jul 19 15:33:01 debssh systemd[1]: Starting The Apache HTTP Server...
Jul 19 15:33:01 debssh apachectl[2791]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive global
Jul 19 15:33:01 debssh systemd[1]: Started The Apache HTTP Server.

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

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

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

hostname -I

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

Альтернативой является использование инструмента + curl +, который должен дать вам ваш публичный IP-адрес, как видно из другого места в Интернете.

Сначала установите + curl с помощью` + apt`:

sudo apt install curl

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

curl -4 icanhazip.com

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

http://

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

изображение: http: //assets.digitalocean.com/how-to-install-lamp-debian-9/small_apache_default_debian9.png [страница по умолчанию Apache]

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

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

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

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

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

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

При использовании веб-сервера Apache вы можете использовать virtual hosts (аналогично блокам серверов в Nginx) для инкапсуляции деталей конфигурации и размещения более одного домена на одном сервере. В следующих командах * замените * + your_domain + * на ваше собственное доменное имя *. Чтобы узнать больше о настройке доменного имени с помощью DigitalOcean, см. Наш Introduction to DigitalOcean DNS.

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

Создайте каталог для + your_domain + следующим образом, используя флаг + -p + для создания любых необходимых родительских каталогов:

sudo mkdir -p /var/www/

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

sudo chown -R $USER:$USER /var/www/

Права доступа к вашим веб-корням должны быть правильными, если вы не изменили значение + unmask +, но вы можете убедиться, набрав:

sudo chmod -R 755 /var/www/

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

nano /var/www//index.html

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

/var/www/your_domain/index.html

<html>
   <head>
       <title>Welcome to !</title>
   </head>
   <body>
       <h1>Success!  The  virtual host is working!</h1>
   </body>
</html>

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

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

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

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

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

<VirtualHost *:80>
   ServerAdmin
   ServerName
   ServerAlias
   DocumentRoot /var/www/
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Обратите внимание, что мы обновили + DocumentRoot + для нашего нового каталога, а + ServerAdmin + - для электронной почты, к которой администратор сайта + your_domain + может получить доступ. Мы также добавили две директивы: + ServerName +, которая устанавливает базовый домен, который должен соответствовать этому определению виртуального хоста, и + ServerAlias ​​+, который определяет другие имена, которые должны совпадать, как если бы они были базовым именем.

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

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

sudo a2ensite .conf

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

sudo a2dissite 000-default.conf

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

sudo apache2ctl configtest

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

OutputAH00558: 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, чтобы внести изменения:

sudo systemctl restart apache2

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

изображение: https: //assets.digitalocean.com/articles/apache_virt_hosts_1404/example.png [пример виртуального хоста Apache]

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

Заключение

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

Если вы хотите создать более полный стек приложений, вы можете посмотреть эту статью на https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mariadb-php-lamp -stack-on-debian-10 [как настроить стек LAMP в Debian 10].

Related