Как настроить виртуальные хосты Apache в Ubuntu 18.04
Как настроить виртуальные хосты Apache в Ubuntu 18.04
How To Set Up Apache Virtual Hosts on Ubuntu 18.04
В этом руководстве мы предоставим пошаговые инструкции о том, как настроить виртуальные хосты Apache в Ubuntu 18.04.

Виртуальные хосты Apache позволяют запускать более одного веб-сайта на одной машине. С помощью виртуальных хостов вы можете указать корень документа сайта (каталог, содержащий файлы сайта), создать отдельную политику безопасности для каждого сайта, использовать разные сертификаты SSL и многое другое.
Хотя это руководство написано для Ubuntu 18.04 Bionic Beaver, те же шаги можно использовать для Ubuntu 16.04 Xenial Xerus.
Введение
Прежде чем продолжить изучение этого руководства, убедитесь, что вы выполнили следующие предварительные условия:
- У вас есть доменное имя, указывающее на IP-адрес вашего публичного сервера. Мы будем использовать
example.com
. - У вас установлен Apache, следуя этим инструкциям .
- Вы вошли в систему как пользователь с привилегиями sudo
.
Создайте структуру каталогов
Корневой каталог документа - это каталог, в котором файлы веб-сайта для доменного имени хранятся и обслуживаются в ответ на запросы. Вы можете установить корень документа в любое место, которое хотите, в этом руководстве мы будем использовать следующую структуру каталогов:
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
├── domain3.com
│ └── public_html
По сути, мы создадим отдельный каталог для каждого домена, который хотим разместить на нашем сервере внутри /var/www
каталога. В каждом из этих каталогов мы создадим 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
Создать виртуальные хосты
По умолчанию в системах Ubuntu файлы конфигурации виртуальных хостов Apache хранятся в /etc/apache2/sites-available
каталоге, и их можно включить, создав символические ссылки на /etc/apache2/sites-enabled
каталог.
Откройте выбранный вами редактор и создайте следующий базовый файл конфигурации виртуального хоста:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@example.com
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
: Предотвращает отображение каталогов.FollowSymLinks
: Этот параметр указывает вашему веб-серверу переходить по символическим ссылкам.
AllowOverride
: Указывает, какие директивы, объявленные в.htaccess
файле, могут переопределять директивы конфигурации.ErrorLog
,CustomLog
: Задает расположение файлов журнала.
Вы можете назвать файл конфигурации по своему усмотрению, но лучше всего использовать доменное имя в качестве имени файла конфигурации виртуального хоста.
Чтобы включить новый файл виртуального хоста, нам нужно создать символическую ссылку из файла виртуального хоста в sites-enabled
каталог, который apache2 читает во время запуска.
Самый простой способ включить виртуальный хост - использовать a2ensite
помощник:
sudo a2ensite example.com
Другой вариант - вручную создать символическую ссылку, как показано ниже:
sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/
После этого проверьте конфигурацию на наличие синтаксических ошибок с помощью:
sudo apachectl configtest
Если ошибок нет, вы увидите следующий вывод:
Syntax OK
Перезапустите службу Apache, чтобы изменения вступили в силу:
sudo systemctl restart apache2
Наконец, чтобы убедиться, что все работает должным образом, откройте http://example.com
в выбранном браузере, и вы увидите что-то вроде этого:
Вывод
Вы узнали, как создать конфигурацию виртуального хоста apache для размещения нескольких доменов на одном сервере Ubuntu. Вы можете повторить описанные выше шаги и создать дополнительные виртуальные хосты для всех своих доменов.