Ich habe festgestellt, dass auf meinem Linux-Server, wenn ich apachectl restart eingebe, ich wenig, aber hilfreiches Feedback bekomme, wie restarting
und dann [ok]
oder [fail]
am Ende der Zeile. Nicht viel, aber zumindest weiß ich, was los ist, und ich kann Protokolle überprüfen.
Auf meinem OS X bekomme ich nichts. nur die nächste Zeile sofort:
sh-3.2# /usr/sbin/apachectl stop
sh-3.2# /usr/sbin/apachectl start
sh-3.2#
Wie kann ich diese Debug-Funktionen aktivieren?
apache-2.2
mac-osx
mgPePe
quelle
quelle
echo
Zeile hinzuzufügen .echo
? Entschuldigung, ich bin neu in der/usr/sbin/apachectl
.Antworten:
Wie wäre es mit dem Apachectl-Wrapper-Skript, das Sie am Ende so etwas anbringen.
Sie sollten so etwas in einem normalen Start sehen
Digest-Authentifizierung ...
PID- Datei /mlk/apache/pid/httpd.pid überschrieben - Unreines Herunterfahren des vorherigen Apache-Laufs?
Andernfalls sollte ein Fehler zumindest teilweise hier angezeigt werden. Der Schlüsselbegriff ist oben hervorgehoben.
Zusätzlich: / usr / sbin / apachectl gehört root. Sie müssen ein privilegierter Benutzer sein, um dies zu tun. sudo vi / usr / sbin / apachectl
Gehen Sie zum Ende der Datei und fügen Sie diese zwischen die Zeilen "esac" und "exit $ ERROR" ein. dh.
Beachten Sie, dass dadurch die letzten Zeilen gedruckt werden, unabhängig davon, welche Aktion Sie mit dem Skript ausführen. Stoppen Sie den Start und starten Sie den Computer neu. Möglicherweise möchten Sie es nur in den Anfangsteil der case-Anweisung einfügen.
quelle
Ich habe das gleiche Problem auf meinem Mac. Immer wenn ich versuche, Apache zu starten und nichts passiert, führe ich diesen Befehl sofort aus. In meinem Fall scheint das Problem immer in den Apache-Konfigurationsdateien zu liegen.
quelle
apachectl -t
apachectl
Auf dem Mac gibt es einen Wrapper um einigelaunchctl
Befehle (schauen Sie einfach in die Datei). Leider wird launchctl nicht mit einem Fehlercode beendet, wenn beim Starten etwas schief gehthttpd
, sodass das Skript keine einfache Möglichkeit hat, etwas anzuzeigen, selbst wenn es dies versucht.Eine grundlegende Überprüfung, die Sie selbst durchführen können, besteht darin, die Existenz von Apache-Prozessen nach dem
apachectl start
Befehl zu überprüfen .quelle
Unter macOS mit
netstat
Befehl wird die gesamte Netzwerkverbindung angezeigt. Sie können nur "Listen" -Verbindungen filtern und die http (s) -Server anzeigen.Mit diesem Code können Sie eine Bash-Datei erstellen:
Das Ergebnis beim Stoppen des Servers ist
sudo apachectl -k stop
:Das Ergebnis bei laufendem Server ist
sudo apachectl -k stop
:In diesem Beispiel werden zwei Server ausgeführt, einer mit https und einer mit http.
quelle