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

Настройка виртуальных хостов Apache в Ubuntu 20.04

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

В этой статье описывается настройка виртуальных хостов Apache в Ubuntu 20.04.

Предпосылки

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

Создание структуры каталогов

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

 /var/www/ ├── domain1.com │  └── public_html ├── domain2.com │  └── public_html

Для каждого домена, размещенного на сервере, корневой каталог документов будет установлен на /var/www//public_html .

Начните с создания корневого каталога для домена:

 sudo mkdir -p /var/www/domain1.com/public_html

Мы также создадим файл index.html внутри корневого каталога документов домена, который будет отображаться при посещении домена в браузере:

/var/www/domain1.com/public_html/index.html

  < html lang = "en" dir = "ltr" > < head > < meta charset = "utf-8" > < title > Welcome to domain1.com  title >  head > < body > < h1 > Success! domain1.com home page!  h1 >  body >  html >

Поскольку приведенные выше команды выполняются от имени пользователя sudo, создаваемые файлы и каталоги принадлежат пользователю root. Чтобы избежать проблем с правами доступа, измените владельца корневого каталога документов домена и всех файлов в нём на пользователя apache ( www-data ):

 sudo chown -R www-data: /var/www/domain1.com

Создание виртуальных хостов

В системах Ubuntu файлы конфигурации виртуальных хостов Apache находятся в каталоге /etc/apache2/sites-available . Их можно включить, создав символические ссылки на каталог /etc/apache2/sites-enabled , которые Apache считывает при запуске.

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

/etc/apache2/sites-available/domain1.com.conf

  *:80 > ServerName domain1.com ServerAlias www.domain1.com ServerAdmin webmaster@domain1.com DocumentRoot /var/www/domain1.com/public_html  /var/www/domain1.com/public_html > Options -Indexes +FollowSymLinks AllowOverride All  ErrorLog ${APACHE_LOG_DIR}/domain1.com-error.log CustomLog ${APACHE_LOG_DIR}/domain1.com-access.log combined 
  • ServerName : Домен, который должен соответствовать конфигурации этого виртуального хоста. Это должно быть ваше доменное имя.
  • ServerAlias : все остальные домены или поддомены, которые должны соответствовать этому виртуальному хосту, например поддомен www .
  • DocumentRoot : Каталог, из которого Apache будет обслуживать файлы домена.
  • Options : эта директива управляет тем, какие функции сервера доступны в определенном каталоге.
    • -Indexes : предотвращает листинг каталогов.
    • FollowSymLinks : если эта опция включена, Apache будет следовать символическим ссылкам.
  • AllowOverride : указывает, какие директивы, объявленные в файле .htaccess могут переопределять директивы конфигурации.
  • ErrorLog , CustomLog : Указывает местоположение файлов журнала.

Вы можете назвать файл конфигурации по своему усмотрению, но лучше всего использовать доменное имя в качестве имени файла конфигурации виртуального хоста.

Чтобы включить новый файл виртуального хоста, используйте вспомогательный скрипт a2ensite , который создает символическую ссылку из файла виртуального хоста на каталог sites-enabled :

 sudo a2ensite domain1.com

Другой вариант — вручную создать символическую ссылку , как показано ниже:

 sudo ln -s /etc/apache2/sites-available/domain1.com.conf /etc/apache2/sites-enabled/

После этого проверьте конфигурацию на наличие синтаксических ошибок с помощью:

 sudo apachectl configtest

Если ошибок нет, вы увидите следующий вывод:

 Syntax OK

Перезапустите службу Apache, чтобы изменения вступили в силу:

 sudo systemctl restart apache2

Наконец, чтобы убедиться, что все работает так, как и ожидалось, откройте http://domain1.com в своем браузере, и вы увидите содержимое страницы index.html :

Заключение

Вы узнали, как создать конфигурацию виртуального хоста Apache для размещения нескольких доменов на одном сервере Ubuntu.

Повторите описанные выше шаги, чтобы создать дополнительные виртуальные хосты для всех ваших доменов.

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

Apache Ubuntu

Эта публикация является частью серии «Как установить LAMP Stack в Ubuntu 20-04» .
Другие посты в этой серии:

Не используете Ubuntu 20.04?
Выберите другую ОС:
центос 7 центос 8 дебиан 10 дебиан 9 убунту 18.04

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *