Apache2 (XAMPP)-Direktive für virtuelle Hosts funktioniert (anscheinend) nicht

Apache2 (XAMPP)-Direktive für virtuelle Hosts funktioniert (anscheinend) nicht

Ich habeein paarProbleme beim Einrichten von IP-basierten virtuellen Hosts. Zunächst verwende ich das aktuelle XAMPP von Apachefriends (XAMPP 1.7.7 mit Apache 2.2.21) unter Windows 7.

Die Grundfunktionalität über den "Haupt"-Server (von httpd.conf) funktioniert einwandfrei. Nun möchte ich aber mehrere virtuelle Hosts mit unterschiedlichen IP-Adressen einrichten, da ich meine Netzwerkkarte so konfiguriert habe, dass sie alle IP-Adressen von 192.168.2.95 bis 192.168.2.105 verwendet.

Dies ist der Eintrag für virtuelle Hosts:

<VirtualHost 192.168.2.96:80>
    DocumentRoot "/xampp/hegedocs/www"
    ServerName 192.168.2.96:80
</VirtualHost>

httpd -D DUMP_VHOSTSsagt dies:

PS G:\xampp\apache\bin> ./httpd -D DUMP_VHOSTS
VirtualHost configuration:
192.168.2.96:80        192.168.2.96 (G:/xampp/apache/conf/extra/httpd-vhosts.conf:45)
Syntax OK

Ich kann jedoch nicht auf den virtuellen Host zugreifen und Apache scheint auch nicht auf 192.168.2.96:80 zu lauschen - für diese Adresse wird kein Eintrag mit angezeigt netstat -a -b.

Antwort1

Ich habe das Problem gefunden: IP-basierte virtuelle Hosts funktionieren einfach nicht. Einfach ein paar Namen in der Hosts-Datei definieren (foo.localhost, bar.localhost, alle auf dieselbe IP-Adresse abgebildet) und dann namensbasierte virtuelle Hosts verwenden, funktioniert problemlos. Natürlich ist das nicht so portierbar wie IP-Adressen, da andere Maschinen im Netzwerk diese Namen natürlich nicht kennen... aber na ja, solange es irgendwie funktioniert...

Antwort2

Schauen Sie sich einfach diese Anleitung an

http://i.justrealized.com/2008/how-to-set-up-virtualhost-in-xampp-for-windows/

Es funktioniert bei mir

Antwort3

Hier sind einige grundlegende Dinge, die Sie hinzufügen könnten, um sicherzustellen, dass Sie den richtigen Port erhalten.

# Ensure that Apache listens on port 80
Listen 80

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

Hier ist ein Beispiel von Apache, wie es aussehen sollte:

<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example1.com

# Other directives here

</VirtualHost>

<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example2.org

# Other directives here

</VirtualHost>

Ich bin sicher, dass Sie das schon einmal gesehen haben, aber manchmal hilft es, auf die einfachen Dinge zurückzublicken.

Mein Setup funktioniert einwandfrei und betreibt zwei Websites auf einer Box mit dem Servernamen www.example.com.

Hoffe das hilft!

Antwort4

Stellen Sie sicher, dass Apache weiß, wo sich die Datei vhost.conf befindet. Am Ende von httpd.conf müssen Sie möglicherweise die Kommentare entfernen.

Include conf/*.conf

verwandte Informationen