В этом руководстве мы предоставим пошаговые инструкции о том, как настроить виртуальные хосты 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 [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
: этот параметр указывает вашему веб-серверу следовать символическим ссылкам.
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. Вы можете повторить описанные выше шаги и создать дополнительные виртуальные хосты для всех ваших доменов.
Если вы столкнулись с какой-либо проблемой, не стесняйтесь оставлять комментарий.
Этот пост является частью серии статей о том, как установить LAMP стек на Ubuntu 18.04. Другие сообщения из этой серии: