Virtuelle Hosts funktionieren in WAMP nicht oder leiten nicht um

2274
pooria

Ich habe ein Problem, das nur in Google Chrome auftritt und in Firefox und IE in Ordnung ist. Ich habe viele Websites gegoogelt und ein paar Tipps gemacht, aber nichts hat funktioniert.

Ich habe WAMP Server installiert. Ich habe zwei virtuelle Hosts eingerichtet:

Das Problem ist, dass jedes Mal, wenn ich localhost in die Adressleiste eingebe, es sofort zu enginter.local weiterleitet! In Chrome wird dieser Fehler für alle lokalen URLs angezeigt:

Diese Seite funktioniert nicht

enginter.local hat keine Daten gesendet.

ERR_EMPTY_RESPONSE

httpd-vhosts.conf:

<VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot "d:/wamp/www/real/yegane" ServerName yegane.local ServerAlias www.yegane.local ErrorLog "logs/yegane.local-error.log" CustomLog "logs/yegane.local-access.log" common <Directory "/"> Require all granted </Directory> </VirtualHost>  <VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot "d:/wamp/www/real/enginter" ServerName enginter.local ServerAlias www.enginter.local ErrorLog "logs/enginter.local-error.log" CustomLog "logs/enginter.local-access.log" common <Directory "/"> Require all granted </Directory> </VirtualHost> 

Und das ist meine hostsDatei (in Windows 10):

127.0.0.1 localhost #::1 localhost  127.0.0.1 enginter.local 127.0.0.1 yegane.local 

Ich habe versucht, den DNS-Cache hier zu löschen. Chrome: // net-internals / # dns Und auch versucht, in Chrome alle Einstellungen auf "default" zurückzusetzen: // Flags, aber kein Glück!

Nach dem Neustart des Systems war das Problem behoben. Aber nach einer Weile passierte es wieder. Und auch Port 80 wird von Apache verwendet.

Es tut mir leid, wenn es verwirrend ist. Ich bin selbst verwirrt und es hat meine ganze Woche gedauert.

AKTUALISIEREN

Jetzt machen alle meine Browser das!

UPDATE 2

httpd -S gibt:

VirtualHost configuration: 127.0.0.1:* is a NameVirtualHost default server enginter.local (D:/wamp/bin/apache/apache2.4.23/conf/extra/httpd-vhosts.conf:43) port * namevhost enginter.local (D:/wamp/bin/apache/apache2.4.23/conf/extra/httpd-vhosts.conf:43) alias www.enginter.local port * namevhost yegane.local (D:/wamp/bin/apache/apache2.4.23/conf/extra/httpd-vhosts.conf:57) alias www.yegane.local *:80 localhost (D:/wamp/bin/apache/apache2.4.23/conf/extra/httpd-vhosts.conf:30) ServerRoot: "D:/wamp/bin/apache/apache2.4.23" Main DocumentRoot: "D:/wamp/www" Main ErrorLog: "D:/wamp/logs/apache_error.log" Mutex default: dir="D:/wamp/bin/apache/apache2.4.23/logs/" mechanism=default PidFile: "D:/wamp/bin/apache/apache2.4.23/logs/httpd.pid" Define: DUMP_VHOSTS Define: DUMP_RUN_CFG Define: APACHE24=Apache2.4 Define: VERSION_APACHE=2.4.23 Define: INSTALL_DIR=D:/wamp Define: APACHE_DIR=D:/wamp/bin/apache/apache2.4.23 
0
Ihre `ServerAlias`-Einträge stimmen nicht mit den` hosts'-Einträgen überein. Einer hat "www", der andere nicht. DavidPostill vor 6 Jahren 1
@ DavidPostill Danke. Jetzt kommentierte ich die `ServerAlias`-Einträge und fügte einen neuen virtuellen Host mit` ServerName` von `localhost` hinzu (verweist auf das www-Verzeichnis). Nun passiert Folgendes: Inhalte von `yegane, local` und` enginter, local 'werden angezeigt, aber die Anforderung von `localhost` leitet (sofort) an` enginter.local` um pooria vor 6 Jahren 0
* Achselzucken * Ich habe dir gesagt, was falsch war und du scheinst noch etwas anderes geändert zu haben ... DavidPostill vor 6 Jahren 1
Jeder virtuelle "localhost" -Host sollte der erste sein (vor einem der anderen Host-Einträge). ServerAlias ​​für Ihren zweiten und dritten Host sollten genau so aussehen, wie in Ihrem ursprünglichen Beispiel angegeben (z. B. www.example.local und unkommentiert). Anaksunaman vor 6 Jahren 0
@DavidPostill Tut mir leid, dass Sie sagen, dass "ServerAlias" diese Änderung obligatorisch macht, also habe ich es kommentiert. Nun tat ich wie Sie sagten und fügte hinzu: "www. *. Local" (* für jeden virtuellen Host). Aber nichts änderte sich. "Localhost" leitet wiederum zu "enginter.local" um pooria vor 6 Jahren 0
@Anaksunaman Danke mein Freund. Ich habe den virtuellen Host mit `ServerName` von` localhost` an das Ende der Datei verschoben und die `ServerAlias`-Einträge unkommentiert und diese Aliase zu meiner` hosts'-Datei hinzugefügt. Wieder hat sich nichts geändert und `localhost` leitet zu` enginter.local` um. Wäre es ein Cache-Problem in meinem System ?! pooria vor 6 Jahren 0
Vielleicht. Wenn es sich um ein Caching-Problem handelt, liegt dies höchstwahrscheinlich beim Browser. Nur als Vorschlag würde ich den Eintrag "localhost" wieder nach oben verschieben. Dies sollte sicherstellen, dass dies der erste geprüfte Host ist. Anaksunaman vor 6 Jahren 0
Wenn Sie sich entschieden haben, etwas anderes als den Browser zu leeren, möchten Sie wahrscheinlich den Windows-DNS-Cache verwenden. Anaksunaman vor 6 Jahren 0
@Anaksunaman Danke. Ich habe den Eintrag für "localhost" nach oben verschoben (obwohl es auch "ServerName" und "DocumentRoot" für localhost in der Hauptdatei "httpd.conf" gibt) und den DNS-Cache von Windows gelöscht. kein Glück! pooria vor 6 Jahren 0
Ich habe eine Antwort gepostet. Ich bin mir zwar nicht sicher, ob es Ihnen bei Ihrem Fall helfen wird, aber ich denke, es wird sicherstellen, dass wir uns auf derselben Seite befinden. Ich habe den Eintrag mit Chrome getestet, er funktioniert und es sollte kein Problem sein. Wenn ja, helfe ich gerne weiter, aber es kann nicht leicht lösbar sein. Anaksunaman vor 6 Jahren 0

1 Antwort auf die Frage

0
Anaksunaman

Ich würde Ihre virtuellen Host-Einträge httpd-vhosts.conffolgendermaßen strukturieren :

# Assuming we wish to type in e.g. "localhost" in Chrome  <VirtualHost *:80> ServerAdmin admin@example.com ServerName localhost #ServerAlias should be unneeded  DocumentRoot "d:/wamp/www/real/localhost" # Or whatever directory is appropriated ErrorLog "logs/localhost.local-error.log" CustomLog "logs/locahost.local-access.log" common #... Other stuff ... </VirtualHost>  #... Other entries as listed ... 

Beachten Sie, dass es #... Other stuff ...sich natürlich um DirectoryInformationen oder um etwas anderes handeln kann, das Sie hinzufügen möchten, dies jedoch nicht erforderlich ist. Diese Konfiguration sollte Ihnen Zugriff auf "localhost" in Ihrem Browser geben, indem Sie entweder "localhost" oder "127.0.0.1" eingeben.

Es gibt auch ServerName- und DocumentRoot-Einträge für localhost in der httpd.conf-Hauptdatei [.].

Sie sollten nichts an dem DocumentRootin ändern, httpd.confaber Sie sollten den Eintrag ServerName ändern httpd.conf, insbesondere in etwas anderes als "localhost" (zB ServerName MyCoolServer= P).

Sie möchten (natürlich) Ihren WAMP (Apache) -Server neu starten und Ihren Browser-Cache leeren (möglicherweise möchten Sie dies sogar zweimal). In Chrome können Sie chrome: // settings / clearBrowserData verwenden . Ähnliche Ergebnisse in Firefox können mit den Optionen * History -> Clear History ... * erzielt werden (löschen Sie mindestens die Browsing & Download History- und Cache- Einstellungen zum frühestmöglichen Zeitpunkt aus dem Dropdown-Menü).

Danke, Mann. Nun ist Chrome OK und Firefox hat das Problem -_-. Ich habe den DNS mehrmals gespült. Ich habe viele Änderungen an `httpd-vhosts.conf` vorgenommen und das Problem besteht immer noch !! pooria vor 6 Jahren 0
Nun, das ist unglücklich. In meinen Tests hat es mit Firefox gut funktioniert, also ist es vielleicht Browser-Caching. Ich würde das gleiche Setup wie oben verwenden und in Firefox jedoch "History -> Clear Recent History" verwenden. Ich würde mindestens die Einträge "Browsing ..", "Cookies" & "Cache" auswählen und sicherstellen, dass der Zeit-Dropdown auf "From The Beginning Of Time" (oder was auch immer die früheste Auswahl ist) eingestellt wurde. Anaksunaman vor 6 Jahren 0