Виртуальный хост Apache указывает на неправильный DocumentRoot


9

Я использую VPS на Digital Ocean под управлением Ubuntu 12.04.3 с виртуальными хостами. Я смог все настроить, следуя этому руководству здесь: https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts

Однако через несколько дней я перешел на свой основной домен (noelforte.com), чтобы проверить, все ли работает нормально, но вместо того, чтобы увидеть целевую страницу, которую я временно настроил, вместо этого меня встретил список каталогов.

Как ни странно, субдомен, который я настроил с помощью VHosts, все еще указывал на правильный каталог, однако мой основной домен вернулся к указанию на корневой каталог документа по умолчанию /var/www.

Удаление файлов конфигурации /etc/apache2/sites-availableи повторная настройка приводили к тем же результатам: любой поддомен будет указывать на правильное местоположение, однако корневой TLD остается застрявшим, указывая на /var/www.

Что может вызвать такую ​​ситуацию, и почему тогда она изначально работала правильно?

Ответы:


12

Решил это! Запуск sudo apache2ctl -Sвернул следующее:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server noelforte.com (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost noelforte.com (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost media.noelforte.com (/etc/apache2/sites-enabled/media.noelforte.com:1)

Я решил отключить все сайты, включая стандартные, и просто активировать нужные мне сайты. Это решило мою проблему.

Если кто-то может объяснить, почему noelforte.comработает, default-000как показано здесь:

port 80 namevhost noelforte.com (/etc/apache2/sites-enabled/000-default:1)

это помогло бы пролить свет на то, что могло быть неправильно настроено. Спасибо!


У меня была та же проблема, для меня это было потому, что ServerName было установлено так же, как домен в файле по умолчанию 000.
Вкрутую Страна чудес

1

Создать 000-defaultфайл в/etc/apache2/sites-available или, если он уже существует, отредактируйте его. Это то место, куда укажет ваш веб-сервер, если для сайта, который вы ищете, не определен виртуальный хост.

Убедитесь, что файл также существует в /etc/apache2/sites-enabled. Если это не так:ln -s /etc/apache2 sites-available/000-default /etc/apache2/sites-enabled/


В defaultмоем /etc/apache2/sites-availableкаталоге уже есть файл . У меня также есть виртуальный хост для noelforte.comнастройки и включения, однако он не указывает на корень документа, определенный в файле vhost. Почему?
Ноэль Форте

0

Вам нужно отредактировать /etc/apache2/sites-enabled/yourdomain.conf и добавить «ServerName» в «yourdomain». Пример:

<VirtualHost *:80>
    ServerName MyDomain
    DocumentRoot /var/www/myDomainFolder
...
</VirtualHost>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.