Virtual Host Beispiel aus Handbuch

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Virtual Host Beispiel aus Handbuch

Postby ValiX » 03. October 2006 20:45

Zum rumspielen mit vhosts (und testen einer zukünfigen Konfig) habe ich mich mal an das Beispiel aus dem XAMPP-Handbuch Seite 52-56 gemacht. Leider funktioniert irgendwie die Sache mit dem namensbasierten Virtual Host nicht. Dabei habe ich jeden Schritt mehrfach gelesen und dann ausgeführt. :oops:

Mittlerweile habe ich den Mainserver auch noch in einen Virtual Host gepackt. (Deshalb 2 NameVirtualHosts)

Läuft unter WinXP, XAMPP 1.5.3a (Apache 2.2.2), ZoneAlarm (Berechtigungen für Apache gegeben)

Hier mal ein Auszug der httpd-vhosts.conf:
Code: Select all
NameVirtualHost 127.0.0.1
NameVirtualHost 127.0.0.2

<VirtualHost 127.0.0.1:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "E:/xampp/xampp/htdocs"
    ServerName localhost
    ErrorLog "E:/xampp/xampp/apache/logs/error.log"
    CustomLog "E:/xampp/xampp/apache/logs/access.log" common
</VirtualHost>

<VirtualHost 127.0.0.2:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "E:/xampp/xampp/vhosts/localhost1/htdocs"
    ServerName localhost1
    ErrorLog "E:/xampp/xampp/vhosts/localhost1/logs/error_log"
    CustomLog "E:/xampp/xampp/vhosts/localhost1/logs/access_log" common
</VirtualHost>

<VirtualHost 127.0.0.2:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "E:/xampp/xampp/vhosts/localhost2/htdocs"
    ServerName localhost2
    ErrorLog "E:/xampp/xampp/vhosts/localhost2/logs/error_log"
    CustomLog "E:/xampp/xampp/vhosts/localhost2/logs/access_log" common
</VirtualHost>

<VirtualHost 127.0.0.2:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "E:/xampp/xampp/vhosts/localhost3/htdocs"
    ServerName localhost3
    ErrorLog "E:/xampp/xampp/vhosts/localhost3/logs/error_log"
    CustomLog "E:/xampp/xampp/vhosts/localhost3/logs/access_log" common
</VirtualHost>


Die hosts-Datei von Windows sieht so aus:
Code: Select all
127.0.0.1       localhost
127.0.0.2   localhost1 localhost2 localhost3


Was jetzt konkret nicht geht ist der Aufruf von http://localhost1 , http://localhost2 , http://localhost3, die localhost geht aber (die Mainservereinstellungen habe ich aus der httpd.conf auskommentiert, also nicht dass hier mit "doppeltem" Boden wäre und nur deshalb geht. )

Ach genau, gegooglt habe ich auch schon wie blöd, überall erhalte ich nur die gleiche Info wie im Handbuch, als wie die config sein muss und wie es theoretisch funktionieren sollte, tuts aber leider nicht. Auch www.apache.org war mir keine Hilfe.
ValiX
 
Posts: 7
Joined: 03. October 2006 20:19
Location: Mainz

Postby Wiedmann » 04. October 2006 00:31

Steht das wirklich so in einem "XAMPP-Handbuch" drin?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby ValiX » 04. October 2006 17:48

Also hier mal die Auschnitte:

Ändern Sie Ihre hosts-Datei, indem Sie die folgenden Zeilen am Ende hinzufügen:
127.0.0.1 localhost1
127.0.0.2 localhost2 localhost3


und soll man die Ordner erstellen:

C:\Programme\XAMPP\vhosts\localhost1\htdocs
C:\Programme\XAMPP\vhosts\localhost1\logs
C:\Programme\XAMPP\vhosts\localhost2\htdocs
C:\Programme\XAMPP\vhosts\localhost2\logs
C:\Programme\XAMPP\vhosts\localhost3\htdocs
C:\Programme\XAMPP\vhosts\localhost3\logs


und schließlich noch die httpd-vhosts.conf bearbeiten:
NameVirtualHost 127.0.0.2

<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@localhost1
DodumentRoot C:/Programme/xampp/vhosts/localhost1/htdocs
ErrorLog C:/Programme/xampp/vhosts/localhost1/logs/error_log
CustomLog C:/Programme/xampp/vhosts/localhost1/logs/access_log common
</VirtualHost>

<VirtualHost 127.0.0.2:80>
ServerAdmin webmaster@localhost2
DocumentRoot C:/Programme/xampp/vhosts/lodalhost2/htdocs
ServerName localhost2
ErrorLog C:/Programme/xampp/vhosts/localhost2/logs/error_log
CustomLog C:/Programme/xampp/vhosts/localhost2/logs/access_log common
</Virtual Host>

<VirtualHost 127.0.0.2:80>
ServerAdmin webmaster@localhost3
DocumentRoot C:/Programme/xampp/vhosts/lodalhost3/htdocs
ServerName localhost3
ErrorLog C:/Programme/xampp/vhosts/localhost3/logs/error_log
CustomLog C:/Programme/xampp/vhosts/localhost3/logs/access_log common
</Virtual Host>



jetzt noch die httpd.conf

<Directory />
Options FollowSymLinks
AllowOverride None
#Order deny,allow
#Deny from all
</Directory>


Mit dieser Einstellung hat es bei mir nicht geklappt. So habe ich ein bisschen rumprobiert (so was ich in Foren las) und außerdem nach meinen Bedürfnissen angepasst. Klappte aber immer noch nicht.

So, falls irgendwelche seltsame Zeichen vorhanden sein sollten, liegt das an meiner OCR Software.
ValiX
 
Posts: 7
Joined: 03. October 2006 20:19
Location: Mainz

Postby Wiedmann » 04. October 2006 18:14

irgendwie Quark das Ganze ;-)

Ändern Sie Ihre hosts-Datei

a) die IP 127.0.0.2 ist keine gültige IP:
Code: Select all
127.0.0.1 localhost
127.0.0.1 localhost1 localhost2 localhost3


und soll man die Ordner erstellen:

OK

und schließlich noch die httpd-vhosts.conf bearbeiten:

b) muss man hier auch die ungültige IP korrigieren.
c) es fehlt der VHost für den bisherigen Server (Defaulthost)
d) Es fehlt die Zugriffsberechtigung für die DocumentRoots der jeweiligen VHosts.

Code: Select all
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName localhost:80
    DocumentRoot "C:/Programme/xampp/htdocs"
</VirtualHost>

<VirtualHost *:80>
    ServerName localhost1:80
    ServerAdmin webmaster@localhost1
    DocumentRoot "C:/Programme/xampp/vhosts/localhost1/htdocs"
    ErrorLog "C:/Programme/xampp/vhosts/localhost1/logs/error_log"
    CustomLog "C:/Programme/xampp/vhosts/localhost1/logs/access_log" common
    <Directory "C:/Programme/xampp/vhosts/localhost1/htdocs">
        Options All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName localhost2:80
    ServerAdmin webmaster@localhost2
    DocumentRoot "C:/Programme/xampp/vhosts/lodalhost2/htdocs"
    ErrorLog "C:/Programme/xampp/vhosts/localhost2/logs/error_log"
    CustomLog "C:/Programme/xampp/vhosts/localhost2/logs/access_log" common
    <Directory "C:/Programme/xampp/vhosts/localhost2/htdocs">
        Options All
        Order allow,deny
        Allow from all
    </Directory>
</Virtual Host>

<VirtualHost *:80>
    ServerName localhost3:80
    ServerAdmin webmaster@localhost3
    DocumentRoot "C:/Programme/xampp/vhosts/lodalhost3/htdocs"
    ErrorLog "C:/Programme/xampp/vhosts/localhost3/logs/error_log"
    CustomLog "C:/Programme/xampp/vhosts/localhost3/logs/access_log" common
    <Directory "C:/Programme/xampp/vhosts/localhost3/htdocs">
        Options all
        Order allow,deny
        Allow from all
    </Directory>
</Virtual Host>

Das c) (Den ersten VHosts-Eintrag) könnte man auch welassen, wenn man auf die bisherigen Seiten (XAMPP-Demos) nicht mehr zugreifen will.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Oswald » 04. October 2006 19:32

Hallo ValiX!

Eigentlich sollte es genau so funktionieren, wie Du es beschrieben hast, bzw. wie es im Buch beschrieben ist. Ich hab es zur Sicherheit auch noch mal ganz genau so ausprobiert, wie wir es im Buch beschrieben haben und es funktioniert wunderbar.

Was funktioniert denn bei Dir nicht? Wie äußert sich das "nicht funktionieren"? Ich denke Dein Problem liegt ganz woanders, aber um das zu finden, bräuchte ich eine genauere Beschreibung des Fehlerfalls.

Wiedmann: 127.0.0.2 ist eine wunderbare und gültige IP-Adresse des loopback-Interface. ;) Letztendlich alles was mit 127. anfängt. In der vom ValiX zitierten Konfiguration geht es um die Konfiguration eines IP-based Virtual Hosts (auf der 127.0.0.1) und zweier name-based Virtual Hosts (auf der 127.0.0.2). Das hat er nicht geschrieben und daher hast Du auch den Konfigurationsschnipsel missverstanden. Die Zugriffsfreigabe auf die Verzeichnisse passierte an einer anderen Stelle (httpd.conf) und ist daher in den einzelnen VirtualHost-Containern nicht notwendig. Ist übersichtlicher so.

Liebe Grüße
Oswald
User avatar
Oswald
Apache Friends
 
Posts: 2718
Joined: 26. December 2002 19:51
Location: Berlin, Germany
Operating System: Linux

Postby Wiedmann » 04. October 2006 20:25

Wiedmann: 127.0.0.2 ist eine wunderbare und gültige IP-Adresse des loopback-Interface.

Du wolltest sagen: Linux lässt in seiner Konfiguration viel zu, und es ist dem Admin seine Aufgabe zu wissen, die Regeln gemäss den Standards zu befolgen.

--> Innerhalb des Blockes 127.0.0.0/8 soll (also quasi darf) man nur 127.0.0.1/32 benutzen. Ergo kann man nur 127.0.0.1 an ein Interface (hier der Loopback-Adapter) binden. Die Server/VHosts vom Apache kann man aber nur auf vorhandenen IP's hören lassen. Vorhanden ist aber nur 127.0.0.1 (fyi: Windows lässt den Unfug mit zuweisen von 127.0.0.2 an den Loopback-Adapter erst gar nicht zu)

Das hat er nicht geschrieben und daher hast Du auch den Konfigurationsschnipsel missverstanden.

Das hab ich verstanden ;-) Nur wurde halt schon eine ungültige IP benutzt. Und das mischen von IP und namebased Hosts, wo der namebased Host dann auch noch an eine bestimmte IP gebunden wird, dürfte das Verstädniss von Anfängern weit übersteigen. Vor allem muss man dann erst einmal erklären, wie man weitere IP's an den lokalen Netzwerkadaptern einrichtet.

Die Zugriffsfreigabe auf die Verzeichnisse passierte an einer anderen Stelle (httpd.conf) und ist daher in den einzelnen VirtualHost-Containern nicht notwendig.

Auch das mergen der Konfigabschnitte, welche definitionen im Hauptserver sich wie in VHosts auswirken, dürfte das Verständis der Anfänger übersteigen.

Da der Zugriff grundsätzlich aber ersteinmal auf alles verboten ist (manche Admins haben das früher aus Unwissen nicht eingerichtet), muss man für jedes Verzeichnis ausserhalb des DocumentRoots vom Hauptserver, das man benutzen will, eine Erlaubnis konfigurieren. Also braucht es in jedem Vhost für das jeweilige DocumentRoot des Vhosts einen DirectoryBlock.

Ich hab es zur Sicherheit auch noch mal ganz genau so ausprobiert, wie wir es im Buch beschrieben haben und es funktioniert wunderbar.

Das setzt dann aber schon eine Konfiguration voraus, die normal nicht (unbedingt) gegeben ist. Oder auf der anderen Seite das Wissen, wie Konfigabschnitte gemerged werden, bzw. Rechte von übergeordnete Verzeichnisse, die irgendwo anders definiert werden, auf untergeordneten Verzeichnissen wirken.

So wie oben, hat er jetzt jedenfalls einen klaren minimalen Aufbau von namebased VHosts, der zudem überall funktioniert (Rechte des Apacheprozesses auf diese Verzeichnisse varausgesetzt *g*) und nachvollziehbar ist.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Oswald » 04. October 2006 20:39

Hallo Wiedmann!

Nur kurz: 127.0.0.2 ist natürlich erlaubt und klappt auch wunderbar unter Windows.

Zum Rest Deiner Meinungsäußerung sag ich jetzt mal nichts. Ich hab einfach keine Lust auf endlose Diskussionen, die zu nichts führen. ;)

Liebe Grüße
Oswald
User avatar
Oswald
Apache Friends
 
Posts: 2718
Joined: 26. December 2002 19:51
Location: Berlin, Germany
Operating System: Linux

Postby Wiedmann » 04. October 2006 20:43

Nur kurz: 127.0.0.2 ist natürlich erlaubt und klappt auch wunderbar unter Windows.

Nun gut, du wirst kein aktuelles Windows haben. Ansonsten empfehle ich dir dir RFC3330 als Lektüre.

Ich hab einfach keine Lust auf endlose Diskussionen, die zu nichts führen.

ACK. Gute Idee. Das hatten wir wir wirklich schon öfters, als es um die Einhaltung von Standards ging :-/

Lassen wir den OP einfach die Methode wählen, die bei ihm funktioniert ;-)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Oswald » 04. October 2006 22:07

Hallo Wiedmann!

Wiedmann wrote:
Nur kurz: 127.0.0.2 ist natürlich erlaubt und klappt auch wunderbar unter Windows.

Nun gut, du wirst kein aktuelles Windows haben. Ansonsten empfehle ich dir dir RFC3330 als Lektüre.


XP SP2.

RFC3330 bestätigt übrigens auf ganzer Linie was ich gesagt habe.

Aber wie gesagt, ich hab keine Lust auf endlose Diskussionen. Lassen wir's.

Liebe Grüße
Oswald
User avatar
Oswald
Apache Friends
 
Posts: 2718
Joined: 26. December 2002 19:51
Location: Berlin, Germany
Operating System: Linux

Postby ValiX » 05. October 2006 07:27

Hallo ihr beiden,

mein Problem äußert sich darin, dass ich beim Aufruf (bei beiden Konfigs) zwar die Localhost(1) aufrufen kann, mit Firefox auch die Localhost1 unter der angep. Konfig, aber die localhost2 und die localhost3 erreiche ich nicht. Bei IE kommt die typische Meldung "Seite nicht erreichbar" und beim FF bleibt einfach alles weiß, da gibt es keine Fehlermeldung in der Art. Natürlich habe ich Test-HTML Files in den jeweiligen Dokumentordnern. Ich hoffe das ist genau genug.

Mir fällt gerade ein, ich habe vergessen durch einen Regestry-Eintrag aus meiner Home Edition eine Professional zu machen.... ich hoffe mal, dass es daran liegt.....
ValiX
 
Posts: 7
Joined: 03. October 2006 20:19
Location: Mainz

Postby Oswald » 05. October 2006 08:25

Hallo ValiX!

Danke, das ist eine perfekte Fehlerbeschreibung! :)

Hast Du im Browser einen Proxy eingestellt?

Liebe Grüße
Oswald

PS: Bitte denk auch daran, dass beide Konfigs von unterschiedlichen hosts-Dateien ausgehen. Die Apache-Konfig aus dem Buch wird nur mit der hosts aus dem Buch funktioniert.

PPS: Es ist übrigens fast normal, dass man am Anfang Probleme mit Virtual Hosts hat. Ich weiß nicht woran es liegt, aber Virtual Hosts sind wirklich das Apache-Problem Nummero uno.
User avatar
Oswald
Apache Friends
 
Posts: 2718
Joined: 26. December 2002 19:51
Location: Berlin, Germany
Operating System: Linux

Postby Wiedmann » 05. October 2006 08:39

ValiX wrote:aber die localhost2 und die localhost3 erreiche ich nicht

Sorry, da hab ich deine per copy 'n paste übernomme (eingescannte) Config einfach angepasst und was übersehen. Bei diesen 2 VHosts muss es anstatt:
</Virtual Host>

dieses sein:
</VirtualHost>

Und bei diesen beiden Hosts muss es in der Zeile mit dem DocumentRoot anstatt:
lodalhost1 bzw. lodalhost2

dieses sein:
localhost1 bzw. localhost2


BTW:
Eigentlich hätte der Apache so (</Virtual Host>) schon gar nicht starten dürfen?

Bei IE kommt die typische Meldung "Seite nicht erreichbar" und beim FF bleibt einfach alles weiß, da gibt es keine Fehlermeldung in der Art

Sollte durch das obige dein Problem nicht behoben sein:
Mal abgesehen vom Cache leeren, kannst du denn die Namen alle anpingen?
ping localhost2
ping localhost3

Möglicherweise musst du ans Ende der "httpd.conf" noch diese Zeile einfügen:
Win32DisableAcceptEx

(Jedesmal natürlich den Apache neu starten. Zum Testen "am Besten" über die Batchdatei, damit du die mögl. Fehlermeldungen siehst.)

--

BTW sei hier noch angemerkt, das Oswald's IP theoretisch funktionieren kann, wenn du den XP-Patch 884020/893066 eingespielt hast. Musst dann nur noch für die Rechte in diesen Directorys sorgen, um die Lösung aus dem Buch nehmen zu können.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby ValiX » 05. October 2006 08:44

@ Oswald:
Danke für deine schnelle Antwort, ja das mit der hosts Datei ist mir klar, deshalb habe ich sie ja auch jeweils gändert, sollte in meinem Code eigentlich zu sehen sein. Ich habe keinen Proxy. Da ich das ganz bei mir zu Hause mache. Also rein privat. Da habe ich lediglich einen Router, augenblicklich läuft da noch ein DHCP mit, der meinem "Server" aber immer eine reservierte IP zuteilt.

@Wiedmann:
Auch danke für deine Antwort. Ich kann alle pingen, Vorschläge kann ich erst heute abend ausprobieren, bin noch auf der Arbeit.
ValiX
 
Posts: 7
Joined: 03. October 2006 20:19
Location: Mainz

Postby ValiX » 05. October 2006 18:28

Hallo Wiedmann, dass mit dem "</VirtualHost>" Problem war auch bei mir nur eine Copy+Paste Geschichte, weiß nicht warum, in meiner httpd-vhosts.conf ist das nicht. Was die Patche betrifft kann ich dir das nicht genau sagen, da ich eine selbstgebastelte Windows CD habe, habe mein Orginal XP ohne SP (von 2001) mit allen Updates bis zum Mai diesen Jahres gefüttert. Was danach kommt installiere ich per Update nach. Da ich erst installiert habe, ziehe ich gerade 180 MB :lol: Danach schau ich mal bei MS nach den Patches.

Server neustarten kein Ding, sowieso.

Also kann ich die "Win32DisableAcceptEx" einfach irgendwo reinsetzen oder muss die innerhalb eines Containers sein?

Und ich arbeite gerade sowieso mit Adminrechten.
ValiX
 
Posts: 7
Joined: 03. October 2006 20:19
Location: Mainz

Postby Wiedmann » 05. October 2006 18:38

Also kann ich die "Win32DisableAcceptEx" einfach irgendwo reinsetzen oder muss die innerhalb eines Containers sein?

Wiedmann wrote:Möglicherweise musst du ans Ende... einfügen:

(Quasi irgendwo, ausserhalb eines Containers.)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Next

Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 7 guests