Wenn Sie Apache erfolgreich mit dem Befehl beenden sudo apachectl stop
, sehen Sie immer noch die Ausgabe, die Sie bei der Ausgabe des apachectl status
Befehls gesehen haben. Ich kann beispielsweise sehen, dass Apache an Port 80 auf meinem OS X El Capitan-System mit dem Befehl netstat überwacht, den Status stoppt, den Status überprüft, der dieselbe Nachricht anzeigt, die Sie gepostet haben, aber überprüfen, dass Apache an Port 80 nicht mehr zuhört .
$ netstat -an | grep '.80' | grep -i Listen tcp46 0 0 *.80 *.* LISTEN $ sudo apachectl stop Password: $ apachectl status Go to http://localhost:80/server-status in the web browser of your choice. Note that mod_status must be enabled for this to work. $ netstat -an | grep '.80' | grep -i Listen $
Die Ausgabe von zu sehen apachectl status
bedeutet nicht, dass Apache noch läuft. Sie können mit dem Befehl netstat -an | grep '.80' | grep -i Listen
überprüfen, ob Port 80 nicht mehr überwacht wird, oder prüfen, ob der Apache- Prozess httpd ausgeführt wird (siehe unten).
$ ps aux | grep httpd | grep -v grep _www 45379 0.0 0.0 2509492 1084 ?? S 6:27PM 0:00.00 /usr/sbin/httpd -D FOREGROUND root 45376 0.0 0.1 2511540 11292 ?? Ss 6:27PM 0:00.19 /usr/sbin/httpd -D FOREGROUND $ sudo apachectl stop Password: $ ps aux | grep httpd | grep -v grep $
Die Fehlermeldung "403 Forbidden" kann auf ein Problem mit den Dateiberechtigungen zurückzuführen sein . Wenn Sie eine HTML-Datei im DocumentRoot-Verzeichnis ablegen, die allen Lesezugriff gewährt hat, z. B. chmod 644 index.html
und versuchen Sie, darauf zuzugreifen, was sehen Sie? Sie können auch einen Hinweis auf das aufgetretene Problem finden, indem Sie die Apache-Fehlerprotokolldatei untersuchen. Sie können den Speicherort der Datei mit dem apachectl -S
Befehl anzeigen. Z.B:
$ apachectl -S AH00557: httpd: apr_sockaddr_info_get() failed for GSSLA15122293 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message VirtualHost configuration: *:80 myserver.example.com (/private/etc/apache2/extra/httpd-vhosts.conf:24) ServerRoot: "/usr" Main DocumentRoot: "/Library/WebServer/Documents" Main ErrorLog: "/private/var/log/apache2/error_log" Mutex proxy: using_defaults Mutex default: dir="/private/var/run/" mechanism=default Mutex mpm-accept: using_defaults Mutex proxy-balancer-shm: using_defaults PidFile: "/private/var/run/httpd.pid" Define: DUMP_VHOSTS Define: DUMP_RUN_CFG User: name="_www" id=70 not_used Group: name="_www" id=70 not_used
Die Ausgabe oben ist, was ich auf meinem System sehe. Obwohl Apache beschwert, dass es „kann nicht zuverlässig den Fully Qualified Domain Namen des Servers bestimmen“, so kann ich die Datei index.html greift ich in meinem DocumentRoot Verzeichnis über platziert http: // localhost, obwohl ich festgelegt ServerName
und DocumentRoot
in einem Virtual Abschnitt in /private/etc/apache2/extra/httpd-vhosts.conf . "Der vollständig qualifizierte Domänenname des Servers konnte nicht zuverlässig ermittelt werden" bedeutet nicht, dass Apache nicht auf Verbindungen wartet. Dies ist, wenn Sie beim Versuch, auf eine Seite auf dem Server zuzugreifen, die Fehlermeldung "403 Forbidden" erhalten, da dies eine Fehlermeldung ist, die vom Webserver zurückgegeben wird.