Назад | Перейти на главную страницу

Обязательно ли называть папку таким же, как имя домена для виртуального хоста?

Учусь создавать виртуальные хосты на apache2. У меня операционная система Ubuntu 16.04. У меня также есть WSL (Ubuntu 16.04) в Windows 10.

А теперь вот что я заметил, когда создал виртуальный хост на ОС Ubuntu:

Я создал следующие VH:

#Did work
<VirtualHost *:80>
ServerName xyzvk.com
ServerAlias www.xyzvk.com
DocumentRoot /var/www/xyzvk.com
</VirtualHost>

#Didn't work
<VirtualHost *:80>
ServerName xyzvk.com
ServerAlias www.xyzvk.com
DocumentRoot /var/www/yolo
</VirtualHost>

и добавил имя и псевдоним в / etc / hosts

Когда я получил доступ к URL-адресу в браузере. Работал нормально.

Теперь, когда я изменил DocumentRoot, перезапустил сервер и попробовал снова, это просто не сработало. Он отправил меня в корневой каталог по умолчанию, т.е. / var / www / html

Использование WSL

Я проделал те же процедуры, за исключением файла hosts, который я редактировал в файле hosts в Windows, так как изменение в файле hosts в Ubuntu не помогло (возможно, потому, что это ОС Windows).

На этот раз все работало в обоих направлениях, независимо от имени каталога.

Так что мой вопрос is: Это просто соглашение о том, чтобы называть папку таким же, как имя домена (если да, то какие могут быть проблемы, что она не работает в ОС Ubuntu) ИЛИ это обязательно?

Это всего лишь соглашение, которое обычно упрощает жизнь системному администратору, поскольку делает все просто.

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

Когда вы изменили свой DocumentRoot и не имел ожидаемого поведения, вам следует изучить файлы журнала Apache, чтобы узнать, что произошло.

Это, вероятно, повторяется много раз в другом месте, но с 2.2 при определении нескольких виртуальных хостов с одним и тем же комбинированным ip: port вы должны добавить дополнительную директиву «once» и «в контексте конфигурации сервера», как это в вашем случае, чтобы иметь возможность: land "на втором виртуальном хосте:

NameVirtualhost *:80

<VirtualHost *:80>
ServerName xyzvk.com
ServerAlias www.xyzvk.com
DocumentRoot /var/www/xyzvk.com
</VirtualHost>

<VirtualHost *:80>
ServerName xyzvk.com
ServerAlias www.xyzvk.com
DocumentRoot /var/www/yolo
</VirtualHost>