Виртуальный хост Apache2 не работает

Виртуальный хост Apache2 не работает

Я использую Debian 7 и установил виртуальный хост с адресом sub.domain.com, следуя этому руководству:http://www.debian-administration.org/articles/412

Я включил его, перезагрузил ПК, но поддомен все равно открывается /var/www

Вот содержимое файла с именем «sub.domain.com», расположенного по адресу /etc/apache2/sites-available/:

<VirtualHost *>
    ServerName sub.domain.com
    DocumentRoot /usr/share/destfolder
    ServerAdmin [email protected]
    ErrorLog /var/log/apache2/sub.domain.com-error_log
    CustomLog /var/log/apache2/sub.domain.com-access_log common
</VirtualHost>

Кстати, когда я перезагружаю конфигурацию Apache, я получаю: NameVirtualHost *:80 has no VirtualHosts

Какие-либо предложения?

решение1

Ссылка только на учебник не является достаточной информацией, лучше, если вы опубликуете свой файл конфигурации. То, что вы получаете /var/wwwпри открытии адреса вашего виртуального хоста, может иметь больше причин.

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

Теперь, наконец, возможный ответ:

1) На вашем виртуальном хосте вы не установили директиву DocumentRoot, а глобальный DocumentRoot (предположительно, по умолчанию) указывает на /var/www.

2) Ваш виртуальный хост не работает так, как вы ожидаете. Иногда это случается, когда вы делаете ошибку в именовании. Включите LogLevel debugотладочное ведение журнала и посмотрите, что происходит и какой виртуальный хост вызывается, когда вы открываете нужный адрес. Файлы журнала в Debian находятся в (не уверен на 100%) /var/log/apache2/.

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

Обновлять: Ну, похоже, вы включили виртуальный хостинг на основе имени. В принципе <VirtualHost ...>, ваша конфигурация выглядит разумной. В пункте вы должны указать порт назначения, например, <VirtualHost *:443>и так далее.

Директивы DocumentRootи ServerNameздесь, все в порядке. Вероятно, ваш виртуальный хост не вызывается при запросе страницы.

Это может быть потому, что Apache не знает, на какой IP указывает sub.domain.com. У вас есть sub.domian.comв DNS или, по крайней мере, в файле hosts?

Подробнее о виртуальных хостах на основе имени:http://httpd.apache.org/docs/2.2/vhosts/name-based.html

Связанный контент