Apache – один из популярнейших веб-серверов с открытым исходным кодом, используемый для размещения веб-сайтов и приложений. Он поддерживает расширяемую архитектуру за счёт модулей, позволяющих добавлять веб-серверу функциональность, такую как обработка динамического контента, сжатие данных, управление доступом и балансировка нагрузки. Apache известен своей надёжностью, гибкостью конфигурации и совместимостью со многими операционными системами, включая как Windows, так и Linux. В данной статье мы рассмотрим, что представляет из себя настройка виртуального хоста с использованием Apache на виртуальном сервере, который работает под управлением Debian 12.
Для настройки тестового виртуального хоста в настоящем руководстве мы будем использовать удалённый сервер, на котором произведена первоначальная настройка безопасности. Также вы можете использовать дополнительные настройки для вашего VPS для того, чтобы оснастить систему более высоким уровнем безопасности. Все работы в нашем примере мы будем производить под именем пользователя, обладающего привилегиями администратора, но не являющимся учётной записью root
.
Установка Apache
Во-первых, перед началом установки нового программного обеспечения хорошим тоном является обновление списка доступных пакетов с использованием утилиты apt
. Чтобы сделать это, выполните команду:
$ sudo apt update
Затем запустите установку непосредственно Apache:
$ sudo apt install apache2
После чего проверьте статус веб-сервера, используя команду:
$ systemctl status apache2
Вывод команды должен выглядеть приблизительно следующим образом и не должен содержать каких-либо записей об ошибках:
Настройка брандмауэра
Если вы установили и настроили брандмауэр, то вам нужно будет добавить в него разрешающее правило для организации доступа к веб-сайту, который вы запустите на своём сервере.
Для начала необходимо найти для нового правила соответствующий профиль в списке приложений брандмауэра UFW:
$ sudo ufw app list
Для доступа к сайту по протоколу HTTP брандмауэр может использовать профиль WWW
:
Более подробную информацию о профиле WWW
можно вывести на экран при помощи команды:
sudo ufw app info WWW
Вывод команды говорит о том, профиль WWW
отвечает за доступ к системе через TCP-порт 80:
Для добавления разрешающего правила для профиля WWW
выполните команду:
sudo ufw allow 'WWW'
Чтобы убедиться в том, что правило создано, запустите команду для вывода текущего состояния брандмауэра:
sudo ufw status
Вывод команды должен показать наличие в списке правил профиля WWW
со значением ALLOW
в столбце Action
:
Настройка виртуального хоста
На следующем этапе мы создадим стартовую страницу тестового сайта и запустим её на веб-сервере. Таким образом, на нашем виртуальном хосте Apache будет работать сайт, для которого в данном случае мы будем использовать доменное имя vash-domain.ru
. При этом, доменное имя сайта должно быть связано с IP-адресом виртуального сервера. Другими словами, предварительно вам нужно будет создать A-запись, содержащую IP-адрес вашего VPS. Сделать это можно через интерфейс вашего регистратора домена или провайдера DNS.
Для того, чтобы разместить файлы веб-сайта на виртуальном сервере, создайте каталог в директории /var/www/
, название которого будет соответствовать доменному имени размещаемого сайта. В данном случае замените vash-domain.ru
на имя вашего сайта:
sudo mkdir /var/www/vash-domain.ru
Затем измените владельца директории /var/www/vash-domain.ru/
на текущего пользователя, и группу этой директории на группу текущего пользователя:
sudo chown -R $USER:$USER /var/www/vash-domain.ru/
После чего установите соответствующие права доступа к данному каталогу:
sudo chmod -R 755 /var/www/vash-domain.ru/
Теперь при помощи текстового редактора nano
создайте в каталоге /var/www/vash-domain.ru/
файл стартовой страницы сайта – index.html
:
sudo nano /var/www/vash-domain.ru/index.html
В нашем примере его содержимое будет следующим:
<html>
<head>
<title>Your website on Apache!</title>
</head>
<body>
<h1>VASH-DOMAIN.RU</h1>
<p>This is the start page of your website.</p>
</body>
</html>
Далее сохраните внесённые изменения с использованием комбинации клавиш Ctrl
o
и закройте файл при помощи Ctrl
x
. Также с помощью редактора nano
в директории /etc/apache2/sites-available/
создайте файл vash-domain.ru.conf
, название которого измените в соответствии с доменным именем вашего веб-сайта:
sudo nano /etc/apache2/sites-available/vash-domain.ru.conf
Содержимое данного файла должно быть следующим:
<VirtualHost *:80>
ServerAdmin mail@vash-domain.ru
ServerName vash-domain.ru
ServerAlias www.vash-domain.ru
DocumentRoot /var/www/vash-domain.ru
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Закройте файл с сохранением внесённых изменений и выполните активацию файла конфигурации виртуального хоста Apache:
sudo a2ensite vash-domain.ru.conf
После чего деактивируйте конфигурацию дефолтного сайта Apache:
sudo a2dissite 000-default.conf
Следующим шагом откройте для редактирования файл apache2.conf
из директории /etc/apache2/
:
sudo nano /etc/apache2/apache2.conf
В конец данного файла добавьте строку, в которой замените vash-domain.ru
на доменное имя вашего сайта:
ServerName vash-domain.ru
Далее проверьте конфигурацию на ошибки:
sudo apache2ctl configtest
В случае, если ошибки в конфигурации отсутствуют, вывод команды будет выглядеть следующим образом:
После чего перезапустите конфигурацию Apache для применения внесённых изменений:
sudo systemctl reload apache2
Наконец, откройте браузер и в нём перейдите по адресу вашего веб-сайта. В нашем примере это – http://vash-domain.ru
:
Таким образом, мы разобрали, как происходит настройка виртуального хоста Apache на Debian 12. В процессе мы разместили стартовую страницу тестового веб-сайта, открыв доступ к нему по протоколу HTTP.