- Установка веб-сервера Apache в Debian 10
- Требования
- 1: Установка Apache
- 2: Настройка брандмауэра
- 3: Проверка веб-сервера
- 4: Управление процессами Apache
- 5: Настройка виртуального хоста (рекомендуется)
- Success! The your_domain virtual host is working!
- 6: Важные файлы и каталоги Apache
- Контент
- Конфигурации
- Логи
- Заключение
Установка веб-сервера Apache в Debian 10
HTTP-сервер Apache – наиболее распространенный веб-сервер. Он предоставляет множество полезных функций, включая динамическую загрузку модулей, надежную поддержку мультимедиа и широкую интеграцию с другим популярным программным обеспечением.
В этом мануале вы узнаете, как установить веб-сервер Apache на Debian 10.
Требования
- Сервер Debian 10.
- Пользователь с доступом к sudo (все действия руководства нужно выполнять в сессии этого пользователя).
- Базовый брандмауэр.
Все необходимые инструкции можно найти в мануале по начальной настройке сервера.
1: Установка Apache
Пакет Apache есть в стандартном репозитории Debian, потому его можно установить с помощью стандартного пакетного менеджера.
Обновите локальный индекс пакетов и установите apache2.
sudo apt update
sudo apt install apache2
Команда установит Apache и все его зависимости.
2: Настройка брандмауэра
Теперь нужно отредактировать параметры брандмауэра и открыть доступ к стандартному порту Apache. Если вы выполнили мануал по начальной настройке, сейчас брандмауэр UFW блокирует доступ к веб-серверу.
Во время установки Apache регистрирует в UFW несколько своих профилей, которые упрощают процесс настройки брандмауэра для портов веб-сервера.
Чтобы просмотреть профили приложений ufw, введите:
Вы увидите список доступных профилей:
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: поддерживает только шифрованный трафик TLS/SSL по порту 443.
Рекомендуется включить наиболее строгий, ограничительный профиль, который при этом позволит поддерживать текущий трафик. Поскольку мы еще не настроили SSL-сертификат, нам нужно разрешить трафик по порту 80:
Убедитесь, что профиль включился:
Status: active
To Action From
— —— —-
OpenSSH ALLOW Anywhere
WWW ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
WWW (v6) ALLOW Anywhere (v6)
3: Проверка веб-сервера
После установки Debian 10 запускает 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 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-адрес, вы можете узнать его с помощью командной строки. Введите:
Вы получите список адресов, разделенных пробелами. Проверьте каждый полученный адрес в браузере.
Также вы можете узнать свой IP, запросив его с помощью команды curl.
Чтобы установить curl, введите:
Чтобы извлечь icanhazip.com (IPv4) с помощью curl, введите:
Узнав свой внешний адрес, введите в браузер:
Вы увидите стандартную страницу Apache для Debian 10.
Эта страница позволяет убедиться, что веб-сервер 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
Чтобы добавить Apache в автозагрузку, используйте эту команду:
sudo systemctl enable apache2
5: Настройка виртуального хоста (рекомендуется)
На веб-сервере Apache вы можете использовать виртуальные хосты (в Nginx это блоки server) для изоляции настроек и размещения нескольких доменов на одном сервере. Здесь используется условный домен your_domain, который вы должны заменить собственным доменом.
Apache в Debian 10 по умолчанию предоставляет один включенный виртуальный хост, который обслуживает каталог /var/www/html. Этого хватит для обслуживания одного сайта, но если вы хотите разместить несколько сайтов, вам нужно создать новые виртуальные хосты. Создайте структуру каталогов в /var/www для сайта example.com, а /var/www/html оставьте как каталог по умолчанию, который будет обслуживаться, если запрос клиента не соответствует другим сайтам.
Создайте каталог для your_domain. Используйте флаг -p для создания всех необходимых родительских каталогов:
sudo mkdir -p /var/www/your_domain/html
Затем укажите права на каталог с помощью переменной $USER:
sudo chown -R $USER:$USER /var/www/your_domain/html
Права должны быть установлены верно, если вы не меняли unmask, но на всякий случай вы можете их проверить:
sudo chmod -R 755 /var/www/your_domain
Затем создайте образец страницы index.html с помощью nano или другого редактора:
Success! The your_domain virtual host is working!
Сохраните и закройте файл.
Чтобы Apache мог обслуживать этот контент, необходимо создать файл виртуального хоста с правильными директивами. Вместо того чтобы напрямую изменять конфигурационный файл по умолчанию, /etc/apache2/sites-available/000-default.conf, создайте новый файл /etc/apache2/sites-available/your_domain.conf:
sudo nano /etc/apache2/sites-available/your_domain.conf
Вставьте в файл следующий блок конфигураций. Он похож на конфигурации по умолчанию, но содержит правильный домен и каталог:
ServerAdmin admin@your_email_domain
ServerName your_domain
ServerAlias www.your_domain
DocumentRoot /var/www/your_domain/html
ErrorLog $/error.log
CustomLog $/access.log combined
Обратите внимание: DocumentRoot содержит путь нового каталога, а ServerAdmin – новый адрес электронной почты администратора сайта your_domain. Мы также добавили в файл две директивы: ServerName определяет базовый домен, который должен соответствовать этому виртуальному хосту, а ServerAlias определяет алиасы.
Сохраните и закройте файл.
Включите файл с помощью a2ensite:
sudo a2ensite your_domain.conf
Отключите стандартный сайт 000-default.conf:
sudo a2dissite 000-default.conf
Проверьте ошибки в конфигурациях:
sudo apache2ctl configtest
Если ошибок нет, команда вернет такой вывод:
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
sudo systemctl restart apache2
Теперь Apache обслуживает домен вашего сайта. Чтобы убедиться в этом, откройте ссылку http://your_domain.
6: Важные файлы и каталоги Apache
Контент
Контент сайта должен храниться в каталоге /var/www/html. По умолчанию из него обслуживается только стандартная страница Apache, которую вы видели ранее. Чтобы изменить корневой каталог сайта, отредактируйте настройки Apache.
Конфигурации
- /etc/apache2: каталог Apache, в котором хранятся все конфигурационные файлы.
- /etc/apache2/apache2.conf: главный конфигурационный файл, в котором находятся глобальные настройки Apache. Он отвечает за загрузку других файлов.
- /etc/apache2/ports.conf: указывает порты, которые прослушивает Apache. По умолчанию веб-сервер прослушивает порт 80; также он может прослушивать порт 443 после включения модуля для поддержки SSL.
- /etc/apache2/sites-available/: каталог, в котором хранятся все файлы виртуальных хостов. Apache не будет использовать их, пока они не связаны с каталогом sites-enabled (см. ниже). Обычно в этом каталоге происходит настройка виртуальных хостов.
- /etc/apache2/sites-enabled/: хранит включенные виртуальные хосты. При запуске или перезапуске Apache читает конфигурационные файлы и ссылки в этом каталоге, чтобы скомпилировать конфигурации.
- /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: каталоги типа sites-available и sites-enabled, работают по тому же принципу. В conf-available хранятся фрагменты конфигураций, которых нет в виртуальном хосте. Файлы в conf-available включаются с помощью команды a2enconf и выключаются с помощью a2disconf.
- /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: также работают по принципу sites-available и sites-enabled. Эти каталоги содержат доступные и активные модули соответственно. Файлы с расширением .load содержат фрагменты для загрузки конкретных модулей. Файлы с расширением .conf хранят настройки этих модулей. Модули включаются и выключаются с помощью команд a2enmod и a2dismod.
Логи
- /var/log/apache2/access.log: по умолчанию каждый запрос к веб-серверу записывается в этом логе доступа (Apache можно настроить иначе).
- /var/log/apache2/error.log: по умолчанию здесь записываются все сообщения об ошибках. Директива LogLevel в настройках Apache определяет, сколько данных будет вноситься в лог.
Заключение
Теперь веб-сервер Apache установлен и готов к работе.