
Ich verwende Debian 7 und habe gemäß diesem Tutorial einen virtuellen Host mit der Adresse sub.domain.com installiert:http://www.debian-administration.org/articles/412
Ich habe es aktiviert, den PC neu gestartet, aber die Subdomäne öffnet immer noch /var/www
Hier ist der Dateiinhalt der Datei mit dem Namen „sub.domain.com“, die sich unter /etc/apache2/sites-available/ befindet:
<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>
Übrigens, wenn ich die Apache-Konfiguration neu lade, erhalte ich:
NameVirtualHost *:80 has no VirtualHosts
Irgendwelche Vorschläge?
Antwort1
Nur das Tutorial zu verlinken ist nicht genug Information, besser ist es, wenn du deine Konfigurationsdatei postest. Das Ergebnis, das du bekommst, /var/www
wenn du deine Virtualhost-Adresse öffnest, kann mehrere Ursachen haben.
Die Apache-Konfigurationsdatei ist so aufgebaut, dass die Anweisungen ohne Kontext global angewendet werden. Andernfalls gelten sie nur innerhalb des Kontexts. Die virtuellen Hosts werden so erstellt, wie der default
oder *
virtuelle Host als Standard festgelegt ist. Wenn es keinen solchen gibt, wird der erste virtuelle Host, der beim Parsen der Konfiguration gefunden wird, als Standard verwendet.
Nun abschließend zur möglichen Antwort:
1) Sie haben in Ihrem virtuellen Host die Direktive „DocumentRoot“ nicht festgelegt und das (vermutlich standardmäßige) globale „DocumentRoot“ verweist auf /var/www
.
2) Ihr virtueller Host funktioniert nicht wie erwartet. Dies passiert manchmal, wenn Sie einen Fehler bei der Benennung machen. Aktivieren Sie LogLevel debug
die Debug-Protokollierung und beobachten Sie, was passiert und welcher virtuelle Host aufgerufen wird, wenn Sie die gewünschte Adresse öffnen. Die Protokolldateien unter Debian befinden sich in (nicht 100 % sicher) /var/log/apache2/
.
Posten Sie Ihre Konfigurationsdateien und Debug-Meldungen. Dadurch erhöhen Sie die Chance auf nützliche Vorschläge erheblich.
Aktualisieren:
Nun, es scheint, Sie haben namensbasiertes virtuelles Hosting aktiviert. Grundsätzlich sieht Ihre Konfiguration vernünftig aus. In der <VirtualHost ...>
Klausel sollten Sie den Zielport wie <VirtualHost *:443>
folgt angeben.
Die Anweisungen DocumentRoot
und ServerName
sind hier, es ist ok. Wahrscheinlich wird Ihr virtueller Host nicht aufgerufen, wenn Sie die Seite anfordern.
Dies kann daran liegen, dass Apache nicht weiß, auf welche IP-Adresse es sub.domain.com
verweist. Hast du es sub.domian.com
im DNS oder zumindest in der Hosts-Datei?
Mehr zu namenbasierten virtuellen Hosts:http://httpd.apache.org/docs/2.2/vhosts/name-based.html