Виртуальные хосты Apache позволяют запускать более одного веб-сайта на одной машине. С помощью виртуальных хостов вы можете указать корень документа сайта (каталог, содержащий файлы веб-сайта), создать отдельную политику безопасности для каждого сайта, использовать разные сертификаты SSL и многое другое.
В этой статье описывается, как настроить виртуальные хосты Apache на сервере Debian 10.
Содержание
Подготовка
Прежде чем продолжить изучение этого руководства, убедитесь, что вы выполнили следующие требования:
- Доменное имя, указывающее на IP вашего публичного сервера.
- Apache установлен в вашей системе CentOS .
- Вы вошли в систему как root или пользователь с привилегиями sudo .
Создайте структуру каталогов
Корневой каталог документа — это каталог, в котором файлы веб-сайта для доменного имени хранятся и обслуживаются в ответ на запросы. Корень документа может быть установлен в любое место по вашему желанию.
Мы будем использовать следующую структуру каталогов:
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
├── domain3.com
│ └── public_html
Каждый домен, размещенный на сервере, будет иметь корневой каталог документа /var/www/<domain_name>/public_html
.
Начнем с создания корневого каталога документов для первого домена example.com
:
sudo mkdir -p /var/www/example.com/public_html
Мы также создадим файл index.html
внутри корневого каталога документов домена, который будет отображаться при посещении домена в браузере.
Откройте ваш любимый текстовый редактор, создайте новый файл и вставьте в него следующее:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to example.com</title>
</head>
<body>
<h1>Success! example.com home page!</h1>
</body>
</html>
Поскольку приведенные выше команды выполняются от имени пользователя sudo, вновь созданные файлы и каталоги принадлежат пользователю root. Чтобы избежать проблем с разрешениями, измените владельца корневого каталога документов домена и всех файлов в каталоге пользователю apache ( www-data
):
sudo chown -R www-data: /var/www/example.com
Создать виртуальные хосты
В системах Debian файлы конфигурации виртуальных хостов Apache расположены в каталоге /etc/apache2/sites-available
и могут быть включены путем создания символических ссылок на каталог /etc/apache2/sites-enabled
, который Apache читает во время запуска.
Откройте нужный текстовый редактор и создайте следующий базовый файл конфигурации виртуального хоста:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example.com/public_html
<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
ServerName
: домен, который должен соответствовать данной конфигурации виртуального хоста. Это должно быть ваше доменное имя.ServerAlias
: все другие домены или субдомены, которые также должны соответствовать этому виртуальному хосту, обычно субдоменwww
.DocumentRoot
: каталог, из которого Apache будет обслуживать файлы домена.Options
: эта директива определяет, какие функции сервера доступны в определенном каталоге.-Indexes
: предотвращает-Indexes
каталогов.FollowSymLinks
: если этот параметр включен, Apache будет следовать символическим ссылкам.
AllowOverride
: указывает, какие директивы, объявленные в файле.htaccess
могут переопределять директивы конфигурации.ErrorLog
,CustomLog
: указывает расположение файлов журнала.
Отредактируйте файл в соответствии с вашими потребностями и сохраните его.
Вы можете назвать файл конфигурации как хотите. Лучше всего использовать доменное имя в качестве имени файла конфигурации виртуального хоста.
Чтобы включить новый файл виртуального хоста, используйте вспомогательный сценарий a2ensite
который создает символическую ссылку из файла виртуального хоста в каталог с поддержкой sites-enabled
:
sudo a2ensite example.com
Другой вариант — вручную создать символическую ссылку, как показано ниже:
sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/
После включения конфигурации проверьте правильность синтаксиса:
sudo apachectl configtest
Если ошибок нет, вы увидите следующий вывод:
Syntax OK
Перезапустите службу apache2
чтобы изменения вступили в силу:
sudo systemctl restart apache2
Чтобы убедиться, что все работает должным образом, откройте http://example.com
в своем любимом браузере, и вы увидите что-то вроде этого:
Выводы
В этом руководстве мы показали вам, как создать конфигурацию виртуального хоста Apache в Debian 10, Buster. Вы можете повторить описанные выше шаги и создать дополнительные виртуальные хосты для всех ваших доменов.
Если вы хотите защитить свой веб-сайт с помощью сертификата SSL, вы можете создать и установить бесплатный сертификат Letsencrypt SSL .
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Этот пост является частью серии «Как установить LAMP Stack на Debian 10». Другие сообщения из этой серии: