Site icon 8HOST.COM

Установка веб-сервера Apache в Debian 9

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

В этом мануале вы узнаете, как установить веб-сервер Apache на сервер Debian 9.

Требования

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

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

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

Обновите индекс пакетов и установите apache2.

sudo apt update
sudo apt install apache2

Команда установит Apache и его зависимости.

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

Теперь нужно отредактировать настройки брандмауэра и открыть доступ к стандартному порту Apache. Если вы выполнили мануал по начальной настройке сервера, брандмауэр UFW блокирует доступ к веб-серверу.

Во время установки Apache регистрируется в UFW и предоставляет несколько профилей, которые упрощают процесс управления доступом к Apache.

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

sudo ufw app list

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

Available applications:
AIM
Bonjour
CIFS
. . .
WWW
WWW Cache
WWW Full
WWW Secure
. . .

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

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

sudo ufw allow 'WWW'

Убедитесь, что профиль включен:

sudo ufw status

В выводе вы увидите:

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

3: Проверка веб-сервера

После установки Debian 9 запустит Apache.

Чтобы убедиться, что веб-сервер запущен, запросите его состояние:

sudo systemctl status apache2
apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-09-05 19:21:48 UTC; 13min ago
Main PID: 12849 (apache2)
CGroup: /system.slice/apache2.service
├─12849 /usr/sbin/apache2 -k start
├─12850 /usr/sbin/apache2 -k start
└─12852 /usr/sbin/apache2 -k start
Sep 05 19:21:48 apache systemd[1]: Starting The Apache HTTP Server...
Sep 05 19:21:48 apache systemd[1]: Started The Apache HTTP Server.

Согласно выводу сервис работает правильно. Но лучше также запросить страницу Apache, чтобы подтвердить работу веб-сервера.

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

hostname -I

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

Также вы можете узнать свой IP, запросив его с помощью команды curl.

Примечание: Чтобы установить curl, введите:

sudo apt install curl

Чтобы извлечь icanhazip.com (IPv4) с помощью curl, введите:

curl -4 icanhazip.com

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

http://server_domain_or_IP

Вы увидите стандартную страницу Apache для Debian 9.

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

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

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

sudo systemctl stop apache2

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

sudo systemctl start apache2

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

sudo systemctl restart apache2

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

sudo systemctl reload apache2

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

sudo systemctl disable apache2

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

sudo systemctl enable apache2

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

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

Apache в Debian 9 по умолчанию предоставляет один включенный виртуальный хост, который обслуживает каталог /var/www/html. Этого хватит для обслуживания одного сайта, но если вы хотите разместить несколько сайтов, вам нужно создать новые виртуальные хосты. Создайте структуру каталогов в  /var/www для сайта example.com, а /var/www/html оставьте как каталог по умолчанию, который будет обслуживаться, если запрос клиента не соответствует другим сайтам.

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

sudo mkdir -p /var/www/example.com/html

Затем определите права на каталог с помощью переменной $USER:

sudo chown -R $USER:$USER /var/www/example.com/html

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

sudo chmod -R 755 /var/www/example.com

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

nano /var/www/example.com/html/index.html

Вставьте в файл:

<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success!  The example.com server block is working!</h1>
</body>
</html>

Сохраните и закройте файл.

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

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

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

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

Обратите внимание, что DocumentRoot содержит путь нового каталога, а ServerAdmin – новый адрес электронной почты администратора сайта example.com. Мы также добавили в файл две директивы: ServerName определяет базовый домен, который должен соответствовать этому виртуальному хосту, а ServerAlias определяет алиасы.

Сохраните и закройте файл.

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

sudo a2ensite example.com.conf

Отключите стандартный сайт 000-default.conf:

sudo a2dissite 000-default.conf

Проверьте ошибки в конфигурации:

sudo apache2ctl configtest

Если ошибок нет, команда вернет:

Syntax OK

Перезапустите Apache:

sudo systemctl restart apache2

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

6: Важные файлы и каталоги Apache

Контент

Контент сайта должен храниться в каталоге /var/www/html. По умолчанию из него обслуживается только стандартная страница Apache, которую вы видели ранее. Чтобы изменить корневой каталог сайта, отредактируйте настройки Apache.

Конфигурации

Логи сервера

Заключение

Теперь веб-сервер установлен и готов к работе.

Читайте также: Установка стека LAMP в Debian 9