Ich habe ein Problem, bei dem Apache nach dem Update auf High Sierra 10.13.1 nicht gestartet wird. In den Fehlerprotokollen wird nichts angezeigt, aber wenn ich es versuche, apachectl start
passiert nichts. Wenn ich laufe, apachectl configtest
erhalte ich "Syntax OK
Ich habe Befehle wie sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
ohne Erfolg verwendet. Apache wird nicht gestartet. Ich kann rennen sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.httpd.plist
und das funktioniert auch nicht.
Ich habe mir die Liste der Braudienstleistungen angesehen und httpd wird zusammen mit anderen Prozessen (MySQL) in der Liste angezeigt, aber der Status von httpd zeigt ein gelbes "gestartet" anstelle eines grünen an.
Ich habe viele verschiedene Dinge ausprobiert, und was ich finde, ist, dass ich finde, wenn ich in die Datei system.log schaue com.apple.xpc.launchctl[1] (homebrew.mxcl.httpd24[11780]): Service exited with abnormal code:1
Wenn ich apachectl start ausführe, scheint der Befehl zu funktionieren, aber wenn ich den Stoppbefehl ausführe, wird "httpd (keine PID-Datei) nicht ausgeführt.
Ich erhalte auch die Ausgabe von com .; Apple.xpc.launchd [1] ( org.apache.httpd): Bitte wechseln Sie von OnDemand zu KeepAlive.
Gibt es etwas in High Sierra, das verhindert, dass Apache ausgeführt wird, wenn es in Sierra einwandfrei funktioniert?
quelle
brew services list' I receive a yellow indicator, I checked with all of the available users and ran
ausprobiert wurden. Wenn ich eine Liste der Brühdienste durchführe, zeigen alle den gleichen Indikator an. Ansible wurde für die Einrichtung von Apache verwendet. Dies wurde auf 5 anderen MacBooks durchgeführt, auf denen Sierra noch ausgeführt wird. Dieses eine MacBook hatte ein Problem und ein Apple führte eine Diagnose durch und setzte das Betriebssystem zurück, während das Betriebssystemapachectl start
). Gleiches mit... configtest
!httpd
Formel verwendet und jetzt reagiert Apache nicht mehr. Wenn ich das tuebrew services list
, bekomme ich auch dasstarted
für httpd in gelb, und wenn ich laufesudo apachectl stop
, sagt es mir dashttpd (pid 87?) not responding.
Antworten:
Meiner Meinung nach haben Sie Ihre verschiedenen httpd-Startdämonen / Startmechanismen abgespritzt, indem Sie zu viele httpd-bezogene Befehle ausgeführt haben.
Wenn Homebrew und Apache-httpd von Homebrew installiert sind und der Standardpfad verwendet wird, haben Sie sechs Möglichkeiten, httpd zu starten.
Apples Apache:
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
sudo /usr/sbin/apachectl start
Homebrews Apache:
sudo apachectl start
apachectl start
sudo brew services start httpd
brew services start httpd
Wenn Sie die Datei homebrew.mxcl.httpd.plist manuell nach ~ / Library / LaunchAgents / oder / Library / LaunchDaemons / kopiert haben, haben Sie zwei weitere Optionen, um sie durch Laden zu starten
(sudo) launchctl load ...
.Wenn Sie die httpd-Konfigurationsdateien oder die apachectl-Skripte nicht stark geändert haben, verwendet der Apple-Zweig die httpd.conf-Datei von Apple in / var und DocumentRoot im Ordner / Library.
Der Homebrew-Zweig verwendet Unterordner in / usr / local /.
Einige Startmethoden funktionieren nicht, wenn Sie die httpd-Ports an Ports unter 1024 gebunden haben!
Wenn Sie
(sudo) brew services ...
httpd starten, müssen Sie den richtigen(sudo) brew services list
Befehl verwenden, um den Status zu überprüfen:Wenn Sie es als root starten, listen Sie es mit root privs auf:
sudo brew services start httpd
>sudo brew services list
oder mit Benutzerprivilegien:
brew services start httpd
>brew services list
.Um Ihr Problem zu lösen, entladen Sie Apples httpd:
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
(sudo) brew services stop httpd
Stoppen Sie alle von apachectl gestarteten httpd:
Geben Sie nun - vorausgesetzt, Sie möchten Homebrews httpd für privilegierte Ports verwenden - Folgendes ein:
Überprüfen Sie den erfolgreichen Start mit
sudo brew services list
.quelle
apachectl stop
liefert die Ausgabe vonhttpd (no pid file) not running
und wenn ich laufesudo brew services httpd start
sudo brew services list
zeigt apache2 (httpd)started
in einer gelben Farbe an Wenn ich versuche, auf etwas zuzugreifen, das mit der Webseite zu tun hat, kann ich nicht. Ich frage mich, ob das Update auf 10.13 etwas in Apache geändert hat, das den Start verhindert.In Bezug auf Homebrew httpd war ein Problem, auf das ich kürzlich gestoßen bin, eine alte übrig gebliebene httpd.pid-Datei, die den Start von httpd verhinderte. Symptom wurde
apachectl start
gesagt, httpd läuft bereits, aber es war nicht.Ursache war hier eine alte Datei:
Die Lösung bestand darin, diese PID-Datei zu löschen und dann httpd zu starten.
quelle
httpd
Aktivitätsmonitor. Dies hat es behoben.brew services list
wurde, erhielt ich den gelben Status "Start", was bedeutete, dass mit dem aktiven Status des Servers etwas nicht stimmte. Das Entfernen der PID hat dies behoben und jetzt zeigt die Serviceliste den aktiven Status stattdessen als grünes "Gestartet" an. Danke dafür!Ich sah mich dem auch gegenüber, nachdem ich heute früher auf High Sierra umgestiegen war. Ich fand heraus, dass die folgenden Apache-Dateien durch brandneue Versionen ersetzt wurden. Zum Glück gab es für alle diese Dateien eine DATEI ~ vorherige Datei im selben Ordner. Ich habe gerade die ~ vorherige Version zurück in die ursprüngliche Version kopiert, Apache neu gestartet und alles war in Ordnung.
Im Ordner
/etc/apache2
:Beispiel:
quelle
/etc/apache2/extra/
befinden sich ungefähr 10 Dateien mit ~ vorherigen Anhängen, falls alle geändert werden sollten, oder nur die beiden, die Sie im/etc/apache2/extra/
Ordner erwähnenIch hatte das gleiche Problem
Dies bedeutet, dass httpd abnormal beendet wurde.
Ich habe dann manuell httpd gestartet, um zu sehen, was das Problem war
Bei den Berechtigungen war es ziemlich klar
Ich glaube, ich habe httpd als root gestartet, was dieses Problem verursacht hat. Ich habe die Dateien entfernt und danach
Alles war in Ordnung.
quelle
Ich würde im Gegenteil vorschlagen, was HomeBrew sagt, immer httpd von sudo laufen zu lassen. Wenn Sie ps -aef | grep httpd ausführen, wird es als ausgeführt angezeigt. Wenn Sie auf sudo verzichten, wird keine ps-Ausgabe ausgegeben, die möglicherweise den falschen Eindruck erweckt, dass httpd nicht ausgeführt wird.
Ich bin mir auch nicht sicher, ob in beiden Fällen unterschiedliche oder gleiche Konfigurationen geladen sind. Ich habe PHP installiert und die Datei test.php mit phpinfo im DocumentRoot-Verzeichnis erstellt. Wenn Sie Apache mit sudo starten, wird möglicherweise phpinfo mit localhost / test.php angezeigt, während Sie Brew Services verwenden. Wenn Sie httpd starten, wird eine Fehlermeldung angezeigt, wenn sich DocumentRoot in einem Bereich befindet, in dem Root-Zugriff erforderlich ist.
quelle