Как настроить виртуальные хосты Apache в Ubuntu 18.04

How To Set Up Apache Virtual Hosts on Ubuntu 18.04

26 Октября 2020 | Ubuntu

В этом руководстве мы предоставим пошаговые инструкции о том, как настроить виртуальные хосты Apache в Ubuntu 18.04.

Как настроить виртуальные хосты Apache в Ubuntu 18.04

Виртуальные хосты Apache позволяют запускать более одного веб-сайта на одной машине. С помощью виртуальных хостов вы можете указать корень документа сайта (каталог, содержащий файлы сайта), создать отдельную политику безопасности для каждого сайта, использовать разные сертификаты SSL и многое другое.

Хотя это руководство написано для Ubuntu 18.04 Bionic Beaver, те же шаги можно использовать для Ubuntu 16.04 Xenial Xerus.

Введение

Прежде чем продолжить изучение этого руководства, убедитесь, что вы выполнили следующие предварительные условия:

Создайте структуру каталогов 

Корневой каталог документа - это каталог, в котором файлы веб-сайта для доменного имени хранятся и обслуживаются в ответ на запросы. Вы можете установить корень документа в любое место, которое хотите, в этом руководстве мы будем использовать следующую структуру каталогов:

/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 файл внутри корневого каталога документов домена.

Откройте ваш редактор и создайте демонстрационный файл:

/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 каталог.

Откройте выбранный вами редактор и создайте следующий базовый файл конфигурации виртуального хоста:

/etc/apache2/sites-available/example.com.conf
<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. Вы можете повторить описанные выше шаги и создать дополнительные виртуальные хосты для всех своих доменов.

    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...