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

12 set 2022 3 min di lettura
Как установить виртуальные хосты Apache в CentOS 8
Indice dei contenuti

Введение

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

В этом руководстве мы предоставим подробные инструкции по настройке виртуальных хостов Apache на сервере CentOS 8.

Предпосылки

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

Если вы хотите установить виртуальные хосты 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

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

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

/var/www/├── example.com
 │  └── public_html
 ├── example-1.com
 │  └── public_html
 ├── example-2.com
 │  └── public_html

Мы создаем отдельный каталог для каждого домена, который мы хотим разместить на нашем сервере, в каталоге var/www. В каждом из этих каталогов мы создадим каталог public_html, в котором будут храниться файлы веб-сайта домена.

Создайте корневой каталог для домена example.com с помощью команды mkdir:

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

В этом руководстве мы используем nano, если вы предпочитаете, вы можете использовать vi, установленный по умолчанию в большинстве дистрибутивов.

sudo dnf install nano

В целях тестирования мы создадим файл index.html внутри корневого каталога документа домена. Откройте редактор и создайте файл HTML со следующим содержимым:

sudo nano /var/www/example.com/public_html/index.html
<!DOCTYPE html>
 <html lang="en" dir="ltr">
 <head>
 <meta charset="utf-8">
 <title>Welcome to example.com</title>
 </head>
 <body>
 <h1>Success! example.com home page!</h1>
 </body>
 </html>

Все команды выполняются от имени пользователя sudo, поэтому вновь созданные файлы и каталоги принадлежат пользователю root. Чтобы убедиться в отсутствии проблем с авторизацией, измените корневое свойство документа домена для пользователя apache:

sudo chown -R apache: /var/www/example.com

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

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

По умолчанию Apache настроен на загрузку всех файлов конфигурации, оканчивающихся на .conf, из каталога /etc/httpd/conf.d/.

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

sudo nano /etc/httpd/conf.d/example.com.conf
<VirtualHost *:80>
 ServerName example.com
 ServerAlias www.example.com
 ServerAdmin [email protected]
 DocumentRoot /var/www/example.com/public_html

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

 ErrorLog /var/log/httpd/example.com-error.log
 CustomLog /var/log/httpd/example.com-access.log combined
 </VirtualHost>
  • ServerName: домен, который должен соответствовать этой конфигурации виртуального хоста. Это должно быть ваше доменное имя.
  • ServerAlias: все остальные домены, которые также должны совпадать с этим виртуальным хостом, например субдомен www.
  • DocumentRoot: каталог, из которого Apache будет обслуживать файлы домена.
  • Options: эта директива определяет, какие функции сервера доступны в определенном каталоге.
  • -Indexes: Предотвращает списки каталогов из браузера.
  • FollowSymLinks: этот параметр указывает веб-серверу переходить по символическим ссылкам.
  • AllowOverride: указывает, какие директивы, объявленные в файле .htaccess, могут переопределять директивы конфигурации.
  • ErrorLog, CustomLog: указывает путь к файлам журнала.

Отредактируйте файл в соответствии с вашими потребностями и сохраните его.

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

Проверьте синтаксис файла конфигурации с помощью:

sudo apachectl configtest

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

Syntax OK

Чтобы активировать только что созданный виртуальный хост, перезапустите службу Apache с помощью:

sudo systemctl restart httpd

Убедитесь, что все работает должным образом, открыв http://example.com.

Вывод

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

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.