
Я использую 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