Как создать виртуальные хосты 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 root@IP_DEL_SERVER

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

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

ssh nome_utente@IP_DEL_SERVER

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

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

ssh nome_utente@IP_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.

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

Support us with a

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.