Virtual Hosts unter Windows mit und ohne LAN

Alles, was den Apache betrifft, kann hier besprochen werden.

Virtual Hosts unter Windows mit und ohne LAN

Postby Nick_E » 04. April 2007 23:18

Hallo Kolleginnen und Kollegen,

folgendes Problem bei einem Apache unter Windows:

Der Rechner ist im Netzwerk und hat die IP 192.168.0.2

Ich habe meine hosts-Datei:


Code: Select all
# Copyright (c) 1993-1999 Microsoft Corp.
#
# ...
#

192.168.0.2       localhost
192.168.0.2       www.domain1.loc
192.168.0.2       www.domain2.loc 



und meine httpd.conf:


Code: Select all
NameVirtualHost 192.168.0.2

<VirtualHost www.domain1.loc>
ServerAdmin webmaster@domain1.loc
ServerName www.domain1.loc
DocumentRoot "D:/www/domain1"
ErrorLog "C:/Programme/WAMP/Apache2/logs/error.log"
</VirtualHost>

<VirtualHost www.domain2.loc>
ServerAdmin webmaster@domain2.loc
ServerName www.domain2.loc
DocumentRoot "D:/www/domain2"
ErrorLog "C:/Programme/WAMP/Apache2/logs/error.log"
</VirtualHost> 


Das funktioniert. Nun ziehe ich aber den Netzwerk-Stöpsel raus.

Jetzt hat der Rechner die IP 127.0.0.1. Also ändere ich sowohl in hosts als auch in httpd.conf die IP-Adresse, starte DNS-Dienst und Apache neu und jetzt werden die Virtual Hosts nicht mehr erkannt.

Beim Aufruf von www.domain1.loc kommt nach wie vor das gewünschte Ergebnis, aber unter www.domain2.loc wird auch der erste Virtual Host in der Liste angewandt, also der von www.domain1.loc. Es sieht also so aus, als würde Windows die Domain zwar weiterhin an die IP weiterleiten, als würde hierbei aber der Name verloren gehen, so dass der Aufruf als "127.0.0.1" bei Apache ankommt und nicht als "www.domain2.loc".

Vermag jemand dieses Geheimnis zu lüften?

Vielen Dank und gute Nacht.
Nick_E
 
Posts: 9
Joined: 04. April 2007 23:08

Postby Wiedmann » 04. April 2007 23:34

Schau dir in der "XAMPP FAQ" das Beispiel für VHosts an.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Nick_E » 05. April 2007 00:21

Wiedmann wrote:Schau dir in der "XAMPP FAQ" das Beispiel für VHosts an.


Danke für den Hinweis auf die FAQ - die hatte noch nicht gesehen. Aber leider bleibt es dabei: Wenn ich den LAN-Stecker ziehe, funktioniert es nicht mehr.

Habe jetzt die Hosts wie folgt

Code: Select all
# Copyright (c) 1993-1999 Microsoft Corp.
#
# ...
#

127.0.0.1       localhost
127.0.0.1       www.domain1.loc
127.0.0.1       www.domain2.loc


und httpd.conf wie folgt

Code: Select all
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName domain1.loc
    ServerAlias www.domain1.loc
    ServerAdmin webmaster@localhost
    DocumentRoot c:/www/domain1
<Directory "c:/www/domain1">
AllowOverride All
        Order allow,deny
        Allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName domain2.loc
    ServerAlias www.domain2.loc
    ServerAdmin webmaster@localhost
    DocumentRoot c:/www/domain2
<Directory "c:/www/domain2">
AllowOverride All
        Order allow,deny
        Allow from all
</Directory>
</VirtualHost>


Es funktioniert ohne Änderungen, so lange der Rechner am Router hängt. Ziehe ich das LAN-Kabel heraus, geht es nicht mehr.

Bei mir gibt es allerdings keine httpd-vhosts.conf und auch kein Verzeichnis \apache\conf\extra. Daher alles in der httpd.conf.
Nick_E
 
Posts: 9
Joined: 04. April 2007 23:08

Postby Wiedmann » 05. April 2007 00:28

Bei mir gibt es allerdings keine httpd-vhosts.conf

Wie alt ist denn dein XAMPP?

Es funktioniert ohne Änderungen, so lange der Rechner am Router hängt. Ziehe ich das LAN-Kabel heraus, geht es nicht mehr.

- "error.log"?
- statest du dann auch den Apache Dienst neu?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Nick_E » 05. April 2007 07:47

Wiedmann wrote:Wie alt ist denn dein XAMPP?


Ich verwende WAMP5 Version 1.6.4. mit Apache 2.0.58 und PHP 5.1.4 - siehe http://www.libe.net/themen/Wamp-Server.php

Wiedmann wrote:- error-log?


Keine Auffälligkeiten - oder??

Code: Select all
[Thu Apr 05 08:38:51 2007] [notice] Parent: Received shutdown signal -- Shutting down the server.
[Thu Apr 05 08:38:51 2007] [notice] Child 4040: Exit event signaled. Child process is ending.
[Thu Apr 05 08:38:52 2007] [notice] Child 4040: Released the start mutex
[Thu Apr 05 08:38:53 2007] [notice] Child 4040: Waiting for 250 worker threads to exit.
[Thu Apr 05 08:38:53 2007] [notice] Child 4040: All worker threads have exited.
[Thu Apr 05 08:38:53 2007] [notice] Child 4040: Child process is exiting
[Thu Apr 05 08:38:53 2007] [notice] Parent: Child process exited successfully.
[Thu Apr 05 08:38:56 2007] [notice] Apache/2.0.58 (Win32) PHP/5.1.4 configured -- resuming normal operations
[Thu Apr 05 08:38:56 2007] [notice] Server built: Apr 29 2006 17:47:10
[Thu Apr 05 08:38:56 2007] [notice] Parent: Created child process 3576
[Thu Apr 05 08:38:56 2007] [notice] Child 3576: Child process is running
[Thu Apr 05 08:38:56 2007] [notice] Child 3576: Acquired the start mutex.
[Thu Apr 05 08:38:56 2007] [notice] Child 3576: Starting 250 worker threads.


Wenn kein LAN-Kabel vorhanden ist, ruft Windows bei Aufruf einer der VirtualHosts nach einer Internetverbindung, als wäre der Host nun plötzlich unbekannt. Ist das LAN-Kabel drin läuft alles hervorragend.

Wiedmann wrote:- statest du dann auch den Apache Dienst neu?


Ja, sogar den kompletten Rechner. Keine Besserung: Ohne LAN-Kabel tut sich nichts. Mit LAN-Kabel alles fein.

Übrigens: Es handelt sich um einen Laptop. Daher das Theater. Würde die Testumgebung gerne auch unterwegs nutzen.
Nick_E
 
Posts: 9
Joined: 04. April 2007 23:08

Postby Nick_E » 05. April 2007 07:58

Nick_E wrote:Ohne LAN-Kabel tut sich nichts. Mit LAN-Kabel alles fein.


Ich korrigiere: Ohne LAN-Kabel funktioniert nur derjenige Virtual Host, der in der Liste ganz oben steht, bei allen anderen ruft Windows nach einer Internetverbindung. Mit LAN-Kabel alles fein.
Nick_E
 
Posts: 9
Joined: 04. April 2007 23:08

Postby Wiedmann » 05. April 2007 12:48

Ich verwende WAMP5 Version 1.6.4

WAMP5 != XAMPP

Wenn kein LAN-Kabel vorhanden ist, ruft Windows bei Aufruf einer der VirtualHosts nach einer Internetverbindung, als wäre der Host nun plötzlich unbekannt. Ist das LAN-Kabel drin läuft alles hervorragend.

- Wie sieht denn jeweils ein "ping" auf die 2 Adressen aus?
- Bei Zugriff mit Telnet oder wget o.ä. auf den Server gibt es dieses Verhalten auch?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Nick_E » 05. April 2007 13:45

Vielen Dank an dieser Stelle schon einmal für die freundliche Hilfe!

Wiedmann wrote:- Wie sieht denn jeweils ein "ping" auf die 2 Adressen aus?


Ping antwortet einwandtfrei auf allen lokalen Domains. Auch bei gezogenem LAN-Kabel.

Wiedmann wrote:- Bei Zugriff mit Telnet oder wget o.ä. auf den Server gibt es dieses Verhalten auch?


Telnet hingegen verharrt beim Verbindungsaufbau sowohl mit als auch ohne eingestecktem LAN-Kabel.

Ich hätte auch kein Problem damit, eine andere Apache-Ausführung zu installieren etc.. Hauptsache eine Lösung.
Nick_E
 
Posts: 9
Joined: 04. April 2007 23:08

Postby Nick_E » 05. April 2007 14:09

Übrigens: http://localhost und http://localhost/phpmyadmin (über einen Alias) funktionieren immer. Ich vermute das Problem bei der nicht stattfindenden Namensauflösung beim Apache und nicht bei der Windows-IP-Zuordnung. Oder?
Nick_E
 
Posts: 9
Joined: 04. April 2007 23:08

Postby Wiedmann » 05. April 2007 14:41

Telnet hingegen verharrt beim Verbindungsaufbau sowohl mit als auch ohne eingestecktem LAN-Kabel.

Auch wenn der Apache gar nicht läuft?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Nick_E » 05. April 2007 14:46

Wiedmann wrote:Auch wenn der Apache gar nicht läuft?


Nein, wenn ich Apache anhalte meldet telnet "Es konnte keine Verbindung hergestellt werden auf Port 80".
Nick_E
 
Posts: 9
Joined: 04. April 2007 23:08

Postby Wiedmann » 05. April 2007 14:56

Nein, wenn ich Apache anhalte meldet telnet "Es konnte keine Verbindung hergestellt werden auf Port 80".

Als nochmal klarstellen:
"www.domain1.loc" geht.
"www.domain2.loc" geht nicht.

Bei Telet gibst du ja als erstes deses Kommando:
telnet www.domain2.loc 80<cr>

Als nächstes gibst du ein:
GET / HTTP/1.1<cr>
Host: www.domain2.loc<cr><cr>

Bei welchem dieser 2 Kommandos will er sich ins Internet eniwählen?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Nick_E » 05. April 2007 15:37

Wiedmann wrote:Als nochmal klarstellen:

Bestandsaufnahme - gute Idee:

hosts:
Code: Select all
127.0.0.1   localhost
127.0.0.1   www.domain1.loc
127.0.0.1   www.domain2.loc


VHosts in httpd.conf:

Code: Select all
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName domain1.loc
    ServerAlias www.domain1.loc
    ServerAdmin webmaster@localhost
    DocumentRoot C:/www/domain1
<Directory "C:/www/domain1">
AllowOverride All
        Order allow,deny
        Allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName domain2.loc
    ServerAlias www.domain2.loc
    ServerAdmin webmaster@localhost
    DocumentRoot C:/www/domain2
<Directory "C:/www/domain2">
AllowOverride All
        Order allow,deny
        Allow from all
</Directory>
</VirtualHost>


Apache läuft, LAN-Kabel ausgesteckt

Browser:

http://localhost funktioniert, ruft den obersten eingerichteten VHost auf (der eigentlich unter domain1.loc aufgerufen werden soll)
http://localhost/phpmyadmin/ funktioniert (ist in httpdconf als Alias includiert)
http://www.domain1.loc funktioniert nicht, Windows verlangt Internet
http://www.domain2.loc funktioniert nicht, Windows verlangt Internet

Telnet:

-> Start -> Ausführen -> Telnet

Microsoft Telnet> open localhost 80 bleibt beim Verbindungsaufbau stecken
Microsoft Telnet> open www.domain1.loc 80 bleibt beim Verbindungsaufbau stecken
Microsoft Telnet> open www.domain2.loc 80 bleibt beim Verbindungsaufbau stecken

Ping:

-> Programme -> Zubehör -> Eingabeaufforderung

> ping www.domain1.loc antwortet
> ping www.domain2.loc antwortet

Apache läuft, LAN-Kabel eingesteckt

Browser:

http://localhost funktioniert, ruft den obersten eingerichteten VHost auf (der eigentlich unter domain1.loc aufgerufen werden soll)
http://localhost/phpmyadmin/ funktioniert (ist in httpdconf als Alias includiert)
http://www.domain1.loc funktioniert einwandtfrei
http://www.domain2.loc funktioniert einwandtfrei

Telnet:

-> Start -> Ausführen -> Telnet

Microsoft Telnet> open localhost 80 bleibt beim Verbindungsaufbau stecken
Microsoft Telnet> open www.domain1.loc 80 bleibt beim Verbindungsaufbau stecken
Microsoft Telnet> open www.domain2.loc 80 bleibt beim Verbindungsaufbau stecken

Ping:

-> Programme -> Zubehör -> Eingabeaufforderung

> ping www.domain1.loc antwortet
> ping www.domain2.loc antwortet

Fazit: Telnet und Ping verhalten sich mit und ohne LAN gleich. Namensauflösung am Apache hängt am LAN-Kabel.
Nick_E
 
Posts: 9
Joined: 04. April 2007 23:08

Postby Wiedmann » 05. April 2007 15:54

Microsoft Telnet> open www.domain1.loc 80 bleibt beim Verbindungsaufbau stecken

Das sieht nur so aus.

Weshalb mein Kommando ja "telnet www.domain1.loc 80" direkt in der Shell war. Und sobald der Bildschirm schwarz wird, gibt man die 2 anderen Zeilen (blind) ein. ("<cr>" = Returntaste)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Nick_E » 11. April 2007 13:33

Es soll nicht der Eindruck entstehen, ich hätte die Lösung gefunden und würde sie nun verschweigen:

Ich habe das Problem vorerst verdrängt - es besteht nach wie vor. Falls ich eine Lösung finde, werde ich sie hier natürlich posten.
Nick_E
 
Posts: 9
Joined: 04. April 2007 23:08


Return to Apache

Who is online

Users browsing this forum: No registered users and 5 guests