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

12 set 2022 3 min di lettura
Как создать виртуальные хосты Apache в Ubuntu 20.04 LTS
Indice dei contenuti

Введение

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

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

Предпосылки

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

  • Одно или несколько доменных имен, указывающих на IP-адрес вашего общедоступного сервера. В этом уроке мы будем использовать domain1.com и domain2.com, будьте осторожны, чтобы изменить следующие значения на ваше собственное доменное имя.
  • Apache установлен в вашей системе Ubuntu.
  • Вы вошли в систему как пользователь root или пользователь с привилегиями sudo.

Если вы хотите создать виртуальные хосты с Apache на удаленном сервере, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и прочитайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh [email protected]_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh [email protected]_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh [email protected]_DEL_SERVER -p PORTA

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

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

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

Каждый домен, размещенный на сервере, будет иметь корень документа, установленный в /var/www/<domain_name>/public_html.

Начните с создания корневого каталога для домена с помощью команды mkdir:

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

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

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

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

Вставьте в файл следующий текст:

<!DOCTYPE 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 читает при запуске.

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

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

Вставьте следующий код, изменив доменное имя:

<VirtualHost *:80>
 ServerName domain1.com
 ServerAlias www.domain1.com
 ServerAdmin [email protected]
 DocumentRoot /var/www/domain1.com/public_html

 <Directory /var/www/domain1.com/public_html>
 Options -Indexes +FollowSymLinks
 AllowOverride All
 </Directory>

 ErrorLog ${APACHE_LOG_DIR}/domain1.com-error.log
 CustomLog ${APACHE_LOG_DIR}/domain1.com-access.log combined
 </VirtualHost>
  • 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 Virtual Host для размещения нескольких доменов на одном сервере Ubuntu 20.04 LTS Focal Fossa.

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

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.