localhost funktioniert nicht unter OS X Yosemite

11

Ich habe den lokalen Apache-Server meines Mac ausgeführt und wenn ich localhost besuche, bekomme ich die Standardseite "Es funktioniert".Die Seite "Es funktioniert" wurde zwischengespeichert - sie ist tatsächlich genauso kaputt wie 127.0.0.1. Wenn ich 127.0.0.1 besuche, gibt mir Chrom jedoch Error code: ERR_CONNECTION_REFUSED. Also lief ich eine telnet. Ergebnis:

harryg$ telnet localhost 80
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
Trying fe80::1...
telnet: connect to address fe80::1: Connection refused
telnet: Unable to connect to remote host

Aber scutilgibt dies:

harryg$ scutil -r localhost
Reachable,Local Address,Directly Reachable Address

Irgendeine Idee, warum es nicht funktioniert? Lauscht Apache auf einem anderen Port? Wenn ja, wie überprüfe ich? Ich habe einige lokale vhosts, auf die einige lokale .devvirtuelle Hosts zugreifen sollten , die ich meiner Hosts-Datei hinzugefügt habe. ZB 127.0.0.1 home.devaber auch sie geben den obigen Fehler an.

Bearbeiten

An Port 80 scheint nichts zu lauschen. Wenn ich laufe, sudo lsof -iTCP:80 -sTCP:LISTENbekomme ich keine Ausgabe. Apache scheint jedoch zu laufen - ich habe apachectlviele Male einen Neustart ausgeführt.

Harryg
quelle
Könnten Sie überprüfen, ob Ihre Webshare mit diesem Tool funktioniert? clickontyler.com/web-sharing
siniradam
Ihr localhostfunktioniert einwandfrei. Apache ist nicht. Aktualisieren Sie Ihre Frage, um diese Tatsache darzustellen, und vergessen Sie nicht, die relevanten Teile Ihrer Apache-Konfiguration und ihrer Protokolldateien anzugeben.
Daniel B
Ich hatte ein ähnliches Problem und konnte es lösen: stackoverflow.com/questions/26454160/…
Xaver
Der normale Weg, dies auf Mavericks / Yosemite zu tun, besteht darin, von Port 80 auf Port 8080 zu portieren. Unter gist.github.com/mindw0rk/dcc6c02a92b49bde0f13 finden Sie ein Beispiel für die Einrichtung mit pfctl. Ändern Sie dann die zu verwendende Apache-Konfiguration Hören Sie 8080. Sie können eine Verbindung zu Port 80 herstellen und der Datenverkehr wird an Apache weitergeleitet. (In unserem Entwickler-Shop verwendet jeder dieses Setup, außer bei
Nginx

Antworten:

11

Überprüfen Sie Ihre Apache-Konfiguration mit diesem Befehl:

sudo apachectl -t

Dies testet die Konfigurationsdateien und teilt Ihnen mit, ob ein Fehler vorliegt. Beim Ausführen werden sudo apachectl startaus irgendeinem Grund keine Syntaxfehler der Konfigurationsdatei in den Protokollen ausgegeben.

Matt Gibson
quelle
Genau das gleiche Problem hier. sudo apachectl -tkehrt zurück Syntax OK. Was dann?
Pmpr
2

Dieser Befehl sollte Ihnen mitteilen, an welchem ​​Port und an welcher IPv-Adresse (4/6) Ihr Apache empfangsbereit ist:

sudo lsof -P -n -iTCP -sTCP:LISTEN | grep httpd

Was bekommen Sie davon, wenn nichts zuhört?

sudo serveradmin status web
sudo serveradmin settings web
ps -acx | grep http

.

Endlich:

sudo serveradmin stop web

Öffnen Sie Console.app und setzen Sie ein Lesezeichen

sudo serveradmin start web

Überprüfen Sie die Protokolle

Florian Bidabe
quelle
Es gab ein Problem mit der Konfigurationsdatei, das den Start von Apache verhinderte! Zwischengespeicherte Seiten ließen mich glauben, dass es für localhost lief, aber nicht für meine lokale IP.
Harryg
Ok cool, Serveradmin löst httpd aus und generiert im Allgemeinen Startprotokolle. Konnten Sie das Problem beheben? Was ist die Fehlermeldung plz (für andere Mitglieder)?
Florian Bidabe
Ja, es ist gelöst. Ich hatte vergessen, ein Apache-vhosts-Modul zu kommentieren, sodass Apache einen Fehler traf, als er VirtualDocumentRoutein meiner vhosts-Konfigurationsdatei angezeigt wurde.
Harryg
2
Hey Harryg, wenn du die Chance hast, aktualisiere den Status auf gelöst.
Florian Bidabe
Ich hatte dieses Problem und einen stillen Fehler beim Starten von Apache. Nichts in Protokollen, aufgrund eines Syntaxfehlers in der Konfiguration. Dieser Befehl tauchte auf:sudo apachectl -t
Matt Gibson
0

Ich glaube, der Standardport ist 8080, aber Sie können in der Datei httpd.conf nach den Ports suchen, die Apache überwacht.


quelle
8080 funktioniert nicht und meine Konfigurationsdatei enthält Listen 80.
Harryg
Kannst du Apache laufen sehen, vielleicht mit einem "ps aux"? Zeigt das Fehlerprotokoll auch etwas an? Der Standardspeicherort sollte / var / log / apache2 / error_log sein
Was ist die Ausgabe von netstat -tulpn | grep :80?
Sardean