Виртуальный хост — это директива конфигурации Apache, которая позволяет вам запускать более одного веб-сайта на одном сервере. С помощью виртуальных хостов вы можете указать корневой каталог документа сайта (каталог, содержащий файлы сайта), создать отдельную политику безопасности для каждого сайта, использовать разные сертификаты SSL и многое другое.
В этой статье описывается, как настроить виртуальные хосты Apache в Ubuntu 20.04.
Убедитесь, что вы выполнили следующие требования, прежде чем продолжить статью:
Корень документа — это каталог, в котором файлы веб-сайта для доменного имени хранятся и обслуживаются в ответ на запросы. Вы можете установить корневой каталог документа в любое место, которое вы хотите, в этом примере мы будем использовать следующую структуру каталогов:
/var/www/ ├── domain1.ru │ └── public_html ├── domain2.ru │ └── public_html
Для каждого домена, размещенного на сервере, корневой каталог документа будет установлен на /var/www/<domain_name>/public_html.
Начните с создания корневого каталога для домена:
sudo mkdir -p /var/www/domain1.ru/public_html
Мы также создадим файл index.html в корневом каталоге документов домена, который будет отображаться при посещении домена в браузере:
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>Добро пожаловать на domain1.ru</title> </head> <body> <h1>Успех! Главная страница domain1.ru!</h1> </body> </html>
Поскольку приведенные выше команды выполняются от имени пользователя sudo, вновь созданные файлы и каталоги принадлежат пользователю root. Чтобы избежать каких-либо проблем с разрешениями, измените владельца корневого каталога документов домена и всех файлов в этом каталоге на пользователя apache (www-data):
sudo chown -R www-data: /var/www/domain1.ru
В системах Ubuntu файлы конфигурации Apache Virtual Hosts находятся в каталоге /etc/apache2/sites-available. Их можно включить, создав символические ссылки на каталог /etc/apache2/sites-enabled, которые Apache прочитал при запуске.
Откройте выбранный вами текстовый редактор и создайте следующий базовый файл конфигурации виртуального хоста:
<VirtualHost *:80> ServerName domain1.ru ServerAlias www.domain1.ru ServerAdmin webmaster@domain1.ru DocumentRoot /var/www/domain1.ru/public_html <Directory /var/www/domain1.ru/public_html> Options -Indexes +FollowSymLinks AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/domain1.ru-error.log CustomLog ${APACHE_LOG_DIR}/domain1.ru-access.log combined </VirtualHost>
Вы можете назвать файл конфигурации как вам угодно, но лучше всего использовать имя домена в качестве имени файла конфигурации виртуального хоста.
Чтобы включить новый файл виртуального хоста, используйте a2ensiteвспомогательный скрипт, который создает символическую ссылку из файла виртуального хоста в каталог sites-enabled:
sudo a2ensite domain1.ru
Другой вариант — создать символическую ссылку вручную, как показано ниже:
sudo ln -s /etc/apache2/sites-available/domain1.ru.conf /etc/apache2/sites-enabled/
После этого проверьте конфигурацию на наличие синтаксических ошибок с помощью:
sudo apachectl configtest
Если ошибок нет, вы увидите следующий вывод:
Syntax OK
Перезапустите службу Apache, чтобы изменения вступили в силу:
sudo systemctl restart apache2
Наконец, чтобы убедиться, что все работает должным образом, откройте http://domain1.ru в вашем браузере, и вы увидите содержимое страницы index.html:
Вы узнали, как создать конфигурацию виртуального хоста Apache для размещения нескольких доменов на одном сервере Ubuntu.
Повторите шаги, описанные выше, чтобы создать дополнительные виртуальные хосты для всех ваших доменов.
Если вы столкнулись с какой-либо проблемой, не стесняйтесь оставлять комментарии.
Добрый день. Я сделал все так как написано выше, но все равно не хочит открыватся в локале. Сразу ищет в инете.
Аналогично и у меня, после установки апача, кропе локалхоста никакой домен добавить не получается
добавиь http:// перед своим именем сайта