
Виртуальный хост — это директива конфигурации Apache, которая позволяет запускать несколько веб-сайтов на одном сервере. С помощью виртуальных хостов вы можете указать корневой каталог документов сайта (каталог, содержащий файлы веб-сайта), создать отдельную политику безопасности для каждого сайта, использовать разные SSL-сертификаты и многое другое.
В этой статье описывается настройка виртуальных хостов Apache в Ubuntu 20.04.
Предпосылки
Прежде чем продолжить работу с руководством, убедитесь, что вы выполнили следующие требования:
- Одно или несколько доменных имен, указывающих на IP-адрес вашего публичного сервера.
- Apache установлен в вашей системе Ubuntu .
- Вы вошли в систему как пользователь root или с привилегиями sudo .
Создание структуры каталогов
Корневой каталог документов — это каталог, в котором хранятся файлы веб-сайта для доменного имени и который предоставляется в ответ на запросы. Вы можете указать любое расположение корневого каталога документов. В этом примере мы будем использовать следующую структуру каталогов:
/var/www/ ├── domain1.com │ └── public_html ├── domain2.com │ └── public_html
Для каждого домена, размещенного на сервере, корневой каталог документов будет установлен на /var/www/ .
Начните с создания корневого каталога для домена:
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.
Повторите описанные выше шаги, чтобы создать дополнительные виртуальные хосты для всех ваших доменов.
Если у вас возникли какие-либо проблемы, не стесняйтесь оставлять комментарии.
Эта публикация является частью серии «Как установить LAMP Stack в Ubuntu 20-04» .
Другие посты в этой серии:
Не используете Ubuntu 20.04?
Выберите другую ОС: центос 7 центос 8 дебиан 10 дебиан 9 убунту 18.04
Связанные руководства
- Защитите Apache с помощью Let's Encrypt в Ubuntu 20.04
- Как установить Apache в Ubuntu 20.04
- Как установить Apache в Ubuntu 22.04
- Как установить Joomla с Apache в Ubuntu 18.04
- Как установить и настроить ownCloud с Apache в Ubuntu 18.04
- Как установить WordPress с Apache в Ubuntu 18.04
- Как установить и настроить Nextcloud с Apache в Ubuntu 18.04