Virtuelle Hosts unter WinXP Prof. mit Apache 2.2.4
Zeromancer
- webserver
Hallo,
vielleicht kann mir jemand mit praktischen Tipps weiterhelfen. Ich habe Apache 2.2.4 auf einem Windows XP Prof-System installiert.
httpd.conf:
***********
---------------------------
<Directory "K:/WWW">
---------------------------
ServerName 127.0.0.1
---------------------------
DocumentRoot "K:/WWW"
---------------------------
Apache wurde gemäß den Standardvorschlägen unter C:\Programme\Apache Software Foundation installiert und läuft auch.
Beim Aufruf von http://localhost erscheint eine "Index of/"-Seite, welche mir die zwei unter "K:/WWW" angelegten Verzeichnisse als Hyperlink anbietet.
Die Hosts-Datei enthält folgenden Eintrag:
-------------------------------------
# 102.54.94.97 rhino.acme.com # Quellserver
# 38.25.63.10 x.acme.com # x-Clienthost
127.0.0.1 localhost
127.0.0.1 www.bbl-online.test
-------------------------------------
Die Datei httpd-vhosts.conf besteht aus:
-------------------------------------------
NameVirtualHost 127.0.0.1
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.Speedport_W_500
DocumentRoot /www/docs/dummy-host.Speedport_W_500
ServerName dummy-host.Speedport_W_500
ServerAlias www.dummy-host.Speedport_W_500
ErrorLog logs/dummy-host.Speedport_W_500-error_log
CustomLog logs/dummy-host.Speedport_W_500-access_log common
</VirtualHost>
<VirtualHost 127.0.0.1>
DocumentRoot "K:/WWW"
ServerName www.bbl-online.test
</VirtualHost>
------------------------------------------------------
Ich bekomme bei http://localhost und http://www.bbl-online.test jeweils nur die "Index of/"-Seite zu sehen.
Könnte mir bitte jemand sagen, wo ich noch Nachträge/Zusatzangaben einfügen muss?!
Danke schon mal.
Mit freundlichen Grüßen,
André
Was willst du denn für virtuelle Hosts einrichten? Namens- oder IP-basierte? Das kann ich aus deiner Konfiguration nicht erkennen. Und deshalb kann es der Apache auch nicht.
Lies doch mal http://httpd.apache.org/docs/2.2/vhosts/
hallo,
Was willst du denn für virtuelle Hosts einrichten? Namens- oder IP-basierte? Das kann ich aus deiner Konfiguration nicht erkennen.
Dann mußt du dir das genauer anschauen. Wenn dasteht
NameVirtualHost 127.0.0.1
Wird wohl ein namensbasierter virthost gemeint sein.
Und deshalb kann es der Apache auch nicht.
Doch, das kann er sehr wohl, und tut es im vorgestellten Beispiel ja auch.
Grüße aus Berlin
Christoph S.
Dann mußt du dir das genauer anschauen. Wenn dasteht
NameVirtualHost 127.0.0.1
Oh, sorry! Habe ich übersehen.
Doch, das kann er sehr wohl, und tut es im vorgestellten Beispiel ja auch.
Dann frag ich noch mal: Wo ist dein Problem?
hallo,
Dann frag ich noch mal: Wo ist dein Problem?
Frag bitte Andre. Ich habe kein Problem mit meinem Apache.
Grüße aus Berlin
Christoph S.
hallo,
Könnte mir bitte jemand sagen, wo ich noch Nachträge/Zusatzangaben einfügen muss?
Nirgends. Auch nach deiner Beschreibung ist alles richtig, du siehst das Directory-listing. Wenn du das nicht zu sehen bekommen willst, mußt du lediglich ein "Standarddokument" in dein DocumentRoot legen, also beispielsweise eine "index.htm".
Allerdings würde ich den ersten virtuellen Host streichen. Dieser "dummy_host" irritiert nur, falls du mal eine Adresse aufrufst, die du in der hosts-Datei nicht eingetragen hast.
Grüße aus Berlin
Christoph S.
Hallo,
This should be changed to whatever you set DocumentRoot to.
<Directory "K:/WWW">
Mein Verständnis: Alle Projekte kommen in dieses Verzeichnis, jeweils in Unterordner
K:/WWW
- /Projekt1 (K:/WWW/Projekt1)
- /Projekt2 (K:/WWW/Projket2)
If your host doesn't have a registered DNS name, enter its IP address here.
ServerName 127.0.0.1
Mangels anderweitigem Wissen habe ich hier die local host-IP eingetragen
DocumentRoot: The directory out of which you will serve your
documents. By default, all requests are taken from this directory, but
symbolic links and aliases may be used to point to other locations.
DocumentRoot "K:/WWW"
Auch hier die Angabe analog zu Punkt 1, alle Projekte liegen in Unterordner auf "K:/WWW"
Apache wurde gemäß den Standardvorschlägen unter C:\Programme\Apache Software Foundation installiert und läuft auch.
Beim Aufruf von http://localhost erscheint eine "Index of/"-Seite, welche mir die zwei unter "K:/WWW" angelegten Verzeichnisse als Hyperlink anbietet.
Okay, das leuchtet mir noch ein.
Die Hosts-Datei enthält folgenden Eintrag:
# 102.54.94.97 rhino.acme.com # Quellserver
# 38.25.63.10 x.acme.com # x-Clienthost127.0.0.1 localhost
127.0.0.1 www.bbl-online.test
Mein Verständnis: Ich lasse lokal (127.0.0.1) einen namensbasierten virtuellen host zu. Wenn ich also www.bbl-online.test im Browser aufrufe, wird lokal nach dem Verzeichnis gesucht, das in den virtuellen host-containern angegeben ist.
<VirtualHost 127.0.0.1>
DocumentRoot "K:/WWW"
ServerName www.bbl-online.test
</VirtualHost>
Mein Verständis: Wenn ich die Angabe "Document Root K:/WWW" um den Ordner des Projektes erweitere (DocumentRoot "K:/WWW/BBL2007") sollte die index-Seite geladen werden, die unter K:/WWW/BBL2007 liegt?!
Dies ist aber leider nicht so. Ich muss also was übersehen haben. Ich bekomme weiterhin die Index-Datei zu sehen, die unter K:/WWW liegt, nicht die Index-Datei aus K:/WWW/BBL2007
Mit freundlichen Grüßen,
André
Hallo,
so schauts jetzt aus. Apache gestoppt, gestartet, vorher alles gespeichert, Browser schließen, Cache leeren, www.bbl-online.test aufrufen - K:/WWW/index.shtml wird aufgerufen, nicht K:/WWW/BBL2007/index.shtml
------------------------------------------
NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
DocumentRoot "K:/WWW/BBL2007"
ServerName www.bbl-online.test
</VirtualHost>
-----------------------------------------------
Mit freundlichen Grüßen,
André
Hallo,
so schauts jetzt aus. Apache gestoppt, gestartet, vorher alles gespeichert, Browser schließen, Cache leeren, www.bbl-online.test aufrufen - K:/WWW/index.shtml wird aufgerufen, nicht K:/WWW/BBL2007/index.shtml
Use name-based virtual hosting.
NameVirtualHost 127.0.0.1
VirtualHost example:
Almost any Apache directive may go into a VirtualHost container.
The first VirtualHost section is used for all requests that do not
match a ServerName or ServerAlias in any <VirtualHost> block.
<VirtualHost 127.0.0.1>
DocumentRoot "K:/WWW/BBL2007"
ServerName www.bbl-online.test
</VirtualHost>
Schau mal in der httpd.conf nach, welche httpd-vhosts.conf dort wirklich per Include eingebungen wird. Ist das überhaupt die, welche Du bearbeitest?
Ansonsten ist das jetzt für einen vhost, der nur lokal erreicht werden soll, schon korrekt so. Mehrere wären dann bei NameVirtualHost jeweils anhand der ServerName zu unterscheiden:
<VirtualHost 127.0.0.1>
DocumentRoot "K:/WWW"
ServerName localhost
</VirtualHost>
<VirtualHost 127.0.0.1>
DocumentRoot "K:/WWW/BBL2007"
ServerName www.bbl-online.test
</VirtualHost>
<VirtualHost 127.0.0.1>
DocumentRoot "K:/WWW/Projekt01"
ServerName projekt1.test
</VirtualHost>
<VirtualHost 127.0.0.1>
DocumentRoot "K:/WWW/Projekt02"
ServerName projekt2.test
</VirtualHost>
viele Grüße
Axel
hallo Axel,
Schau mal in der httpd.conf nach, welche httpd-vhosts.conf dort wirklich per Include eingebungen wird. Ist das überhaupt die, welche Du bearbeitest?
Wenn er diese httpd.conf nicht zusätzlich bearbeitet hat, ist der Include-Befehl zwar korrekt formuliert und weist suf die richtige httpd-vhosts.conf (im "default"-Unterverzeichnis), aber er ist standardmäßig auskommentiert.
Ansonsten ist das jetzt für einen vhost, der nur lokal erreicht werden soll, schon korrekt so.
Mit einer Einschränkung: wenn in der httpd.conf selbst als Servername nur die Loopback-Adresse angegeben wurde und zugleich noch _außerhalb_ von virthost-Containern eine Festlegung für die DocumentRoot existiert, passiert genau das, was Andre beschreibt.
Grüße aus Berlin
Christoph S.
Hallo Christoph,
Wenn er diese httpd.conf nicht zusätzlich bearbeitet hat, ist der Include-Befehl zwar korrekt formuliert und weist suf die richtige httpd-vhosts.conf (im "default"-Unterverzeichnis), aber er ist standardmäßig auskommentiert.
daran lag es wohl. ;-) Vielen Dank für deine Hilfe.
Mit freundlichen Grüßen,
André
Hallo Axel,
Schau mal in der httpd.conf nach, welche httpd-vhosts.conf dort wirklich per Include eingebungen wird. Ist das überhaupt die, welche Du bearbeitest?
du bist gerade mein persönlicher "Held des Tages". ;-) Die Zeile
Include conf/extra/httpd-vhosts.conf
war auskommentiert!
Jetzt läufts:
http://localhost
liefert K:/WWW/index.shtml
http://www.bbl-online.test
liefert K:/WWW/BBL2007/index.shtml
Riesen Dank!
Mit freundlichen Grüßen,
André
Mein Verständis: Wenn ich die Angabe "Document Root K:/WWW" um den Ordner des Projektes erweitere (DocumentRoot "K:/WWW/BBL2007") sollte die index-Seite geladen werden, die unter K:/WWW/BBL2007 liegt?!
Dies ist aber leider nicht so. Ich muss also was übersehen haben. Ich bekomme weiterhin die Index-Datei zu sehen, die unter K:/WWW liegt, nicht die Index-Datei aus K:/WWW/BBL2007
Nachfrage: Willst du im Browser http://www.bbl-online.test/ eintippen und die Seite unter K:/WWW/BBL2007 sehen, oder willst du http://www.bbl-online.test/BBL2007/ eintippen, um die Seite zu sehen?
Hallo Blauvogel,
Nachfrage: Willst du im Browser http://www.bbl-online.test/ eintippen und die Seite unter K:/WWW/BBL2007 sehen, oder willst du http://www.bbl-online.test/BBL2007/ eintippen, um die Seite zu sehen?
ich habe drei Projekte, die später über
www.bbl-online.test die index-Seite aus K:/WWW/BBL2007
www.projekt2.test die index-Seite aus K:/WWW/Projekt2
www.projekt3.test die index-Seite aus K:/WWW/Projekt3
aufrufen sollen.
Ich brauche dies, da ich die Navi, die Stylesheets, Bilder etc. später per "/style/sreen.css" oder auch "/navi/navi-links.txt" bzw. "/images/2007/bild1.jpg" einbinden möchte.
Mit freundlichen Grüßen,
André
hallo,
Ich brauche dies, da ich die Navi, die Stylesheets, Bilder etc. später per "/style/sreen.css" oder auch "/navi/navi-links.txt" bzw. "/images/2007/bild1.jpg" einbinden möchte.
Zwar kannst du dir natürlich beliebig viele virtuelle Hosts erstellen, aber die Begründung, weshalb du sie einrichten möchtest, ist nicht einleuchtend.
Grüße aus Berlin
Christoph S.
Hallo Christoph,
Zwar kannst du dir natürlich beliebig viele virtuelle Hosts erstellen, aber die Begründung, weshalb du sie einrichten möchtest, ist nicht einleuchtend.
nun, ich möchte einfach unter "simulierten" Live-Bedingungen testen. Bin die letzte Zeit gut damit gefahren.
Mit freundlichen Grüßen,
André
hallo,
nun, ich möchte einfach unter "simulierten" Live-Bedingungen testen. Bin die letzte Zeit gut damit gefahren.
Das ist ja ein durchaus guter Vorsatz, aber dafür brauchst du nicht mehrere unterschiedliche virtuelle Hosts. Wenn du mit /style/sreen.css eine externe CSS einbindest, muß die ja auf demselben Server (also hier: virtuellen Host) liegen. Anders sieht es erst aus, wenn du stattdessen http://projekt1/style/screen.css probieren möchtest.
Grüße aus Berlin
Christoph S.
hallo,
ServerName 127.0.0.1
Mangels anderweitigem Wissen habe ich hier die local host-IP eingetragen
Das ist möglich, wenn auch nicht sehr gechickt.
DocumentRoot "K:/WWW"
Damit gibst du "zentral" für diesen Servernamen, also in deinem Fall für die Loopbackadresse, die DocumentRoot vor.
127.0.0.1 localhost
127.0.0.1 www.bbl-online.test
Wenn ich die Angabe "Document Root K:/WWW" um den Ordner des Projektes erweitere (DocumentRoot "K:/WWW/BBL2007") sollte die index-Seite geladen werden, die unter K:/WWW/BBL2007 liegt?
Ja, sollte.
Dies ist aber leider nicht so.
Vermutlich, weil du zweimal DocumentRoot definiert hast - dann wird eben der erste Eintrag (und nicht der aus dem virthost-Container) genommen. Und laut hosts-Datei ist der erste Eintrag, der deiner 127.0.0.1 einen Namen zuordnet, localhost.
Abhilfen:
1. Gib einen Servernamen vor - wenn dir nichts anderes einfällt, nennst du ihn eben "localhost"
oder
2. Laß "DocumentRoot" weg und definiere dafür im Abschnitt über virtuelle Hosts zwei virthost-Container: den, den du bereits hast, und einen zweiten für "localhost". Ordne beiden die unterschiedlichen Verzeichnisse für die DocumentRoot zu.
Im übrigen bist du genau über die Stelle gestolpert, die deutlich macht, weshalb man versuchen sollte, wann immer möglich _nicht_ die Loopback-Adresse für virtuelle Hosts zu nehmen. Das Problem hast du nicht, wenn du deiner Netzwerkkarte eine private IP (z.B. 192.168.1.1) zuweist und diese IP dann eben für deine virtuellen Hosts benutzt.
Grüße aus Berlin
Christoph S.