• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Virtuelle WWW-Server wollen nicht arbeiten

Hallo,

eigentlich hatte ich das Tutorial für das Anlegen von virtuellen Servern per Webmin für idiotensicher gehalten. Aber trotz mehrmaligen Starts von der Grund-config-Datei von Apache (also dem Urzustand der httpd.config) klappt es nicht.

Ich stelle, die httpd.config wieder in den Urzustand zurück und bewege mich in den Apache-Teil von Webmin (natürlich inklusive Restart von Apache). Ich verändere nirgendwo etwas. Der Default Server (unter Virtual Servers) ist auf die richtige Document-Root (/srv/www/htdocs) eingestellt und bei Aufruf von meinem Rechner an den Server wird die SUSE-Standard-HTML-Seite angezeigt. Eigentlich ja schon mal recht erfreulich ;).

Als nächstes trage ich in der Box "Create a New Virtual Server" eine weitere Document-Root ein (/srv/www/versuch/htdocs) und den Server-Namen (versuch.local) und klicke dann auf "Create".
Nach einem Restart und einer Eintragung in die Windows-Hosts-Datei (<Server-IP> versuch.local) erscheint auch die dort abgelegte Homepage wenn ich im Browser "versuch.local" eingebe. Eigentlich ja genau das was ich will ... ABER ... wenn ich im Browser die Server-IP direkt eingebe erscheint seltsamerweise auch die Homepage von versuch.local. Lege ich weitere virtuelle Server an (z.B. homepage.local) und gebe diesen URL im Browser ein, erscheint ebenfalls wieder die Homepage von versuch.local.

Schaut man sich die httpd.conf per Webmin an, sind die Virtuellen Server meiner Meinung nach auch richtig eingetragen mit:

<VirtualHost _default_:*>
DocumentRoot "/srv/www/versuch/htdocs"
ServerName versuch.local
</VirtualHost>

<VirtualHost _default_:*>
DocumentRoot "/srv/www/homepage/htdocs"
ServerName homapge.local
</VirtualHost>


Aber es funktioniert nicht. Der Fehler bleibt weiterhin bestehen. Auch wenn per BindAddress 192.168.0.1 noch explizit die IP-Adresse des Servers angegeben wird.

Mache ich noch irgendwas falsch? Fehlt noch irgendwas? So langsam gehen mir die Ideen aus was ich noch ausprobieren könnte und irgendwie frustet es ganz schön, wenn man ewig an einer Sache sitzt, die doch eigentlich recht einfach erscheint.

Für Tips oder Anregungen wäre ich daher sehr, sehr dankbar!

Grüße
salfaturno
 

nobbiew

Hacker
Erklär mir mal, wie du dir vorstellst, dass Apache erkennt, bei welchem Aufruf er welchen virtuellen Server er ansprechen soll.

Du hast in deinem Beispiel zweimal erklärt, dass er alle Anfragen beantworten soll. Nun ist es bei Apache so, dass er den ersten gültigen Eintrag, den er findet auch verwendet u. nicht weitersucht deine Einträge müssten folgendermaßen lauten:

Code:
<VirtualHost versuch.local:*> 
DocumentRoot "/srv/www/versuch/htdocs" 
ServerName versuch.local 
</VirtualHost> 
 
<VirtualHost homapge.local :*> 
DocumentRoot "/srv/www/homepage/htdocs" 
ServerName homapge.local 
</VirtualHost>
Der Paramter ServerName heißt nicht "lausche auf den Namen", sondern "melde den Namen zurück" wenn dieser Abschnitt zutrifft. Den richtigen Namen zurückzumelden ist deshalb wichtig, da dieser Name dann bei relativen Adressangaben innerhalb des virtuellen Server ergänzt wird u. diese Aufrufe dann wieder zu diesem virtuellen Server zurückkommen. Das bedeutet aber auch, wenn da ein anderer Name zurückgegeben wird, landen relative URL's auf dem falschen Server.

Übrigens kannst du das :* in VirtualHost sparen, wenn du nur mit Port 80 arbeitest. Dieser Eintrag bewirkt nur, dass er für alle Ports auf diesen Namen lauschen soll.
 
OP
S

salfaturno

Newbie
Hallo nobbiew,

also innerhalb von <VirtualHost ...> sind eigentlich nur IP-Adressen und Portangaben zugelassen. Webmin läßt dafür auch nichts anderes zu und wenn man in die Apache-Doku raunschaut steht da auch nur, daß dort diese Angaben gemacht werden können. Um das zur Domain passende Verzeichnis zu finden dient die Angabe ServerName.

Aber ich habe den Fehler jetzt gefunden ... Webmin hat "vergessen" NameVirtualHost * in die httpd.conf reinzuschreiben.

Grüße
salfaturno
 
Oben