Frage

Etwas, dass ich vor kurzem auf zwei verschiedenen Maschinen bemerkt habe ist, dass Apache2 über MacPorts installiert scheint Start gestoppt zu haben, wenn ich booten. Die ehrliche Wahrheit ist, dass ich nicht schwören kann es so zuvor, aber es ist etwas, ich glaube, ich bemerken würde, weil die LaunchDaemon Installation Teil meines Installationsprozesses ist. wenn ich in der Tat, versuchen Sie die LaunchDaemon neu zu laden, ist es nicht:

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
org.macports.apache2: Already loaded

Wenn ich Apache manuell starten (mit sudo apachectl restart), dass dem grepen für beide "apache2" oder "httpd" in meiner Prozessliste erzeugt nur diese:

$ sudo ps -ef | egrep "apache2|httpd"
    0    52     1   0   0:00.06 ??         0:00.08 /opt/local/bin/daemondo --label=apache2 --start-cmd /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart ; --pid=none

1410639199 6960 6792 0 0: 00.00 ttys001 0: 00.00 egrep apache2 | httpd

Sieht aus wie der Dämon selbst an Ort und Stelle, aber nicht ausführbar. Soweit ich weiß, / sagen kann, die entsprechenden ausführbaren Dateien (httpd und apachectl) von jedem ausführbar sind.

Hat jemand das bemerkt? Irgendwelche Ideen?

UPDATE

Wie gewünscht unten, ich habe launchctl list auszuführen. Die Liste ist lang und ich bin nicht sicher, wie es schnippeln, aber es genügt zu sagen, dass keine org.macports.* Artikel aufgeführt sind. Das ist an sich interessant ist, weil mein MySQL-Daemon auf die gleiche Weise geladen wird. Es funktioniert, aber auch in der Liste nicht angezeigt. Lassen Sie uns wissen, wenn die gesamte Produktion wirklich benötigt wird.

UPDATE

Ich nahm an, dass ich launchctl list unter sudo ausgeführt hatte, aber aufgefordert, von mipadi Kommentar unten, ich versuchte es noch einmal Gewährleistung , dass ich tat es und ich fälschlicherweise angenommen. Wenn unter sudo ausgeführt, erscheinen die MacPorts Artikel:

51  -   org.macports.mysql5
52  -   org.macports.apache2

Ich bin mir nicht sicher, ob das hilft, aber es ist ein wenig mehr Informationen dennoch.

UPDATE

Ich habe eine anderen gefragt, aber im Zusammenhang, Frage an LaunchDaemons und Umgebungsvariablen . Ich werde beiden Fragen aktualisieren, wie ich erfahren Sie mehr.

UPDATE

Heute basierte auf Mailing-Liste-Eingang, habe ich versucht, ein Wildcard Home-Verzeichnis verwenden. Akademisch, ist es ein wenig umfassender als Ich mag würde, aber die praktische Realität ist, dass ich der einzige mit diesem Computer bin; sicherlich die einzige, um zur Apache-Konfigurationsdateien haben würde.

Include "/Users/*/Dropbox/Application Support/apache/conf.d.osx/*.conf"
Include "/Users/*/Library/Application Support/MacPorts/apache/conf.d/*.conf"

Leider ...

httpd: Syntax error on line 512 of /opt/local/apache2/conf/httpd.conf: Wildcard patterns not allowed in Include /Users/*/Dropbox/Application Support/apache/conf.d.osx/*.conf
War es hilfreich?

Lösung 2

Da ich weiß jetzt, Warum Apache Laden beim Start zum Stillstand gekommen ist, wird mich diese Antwort formulieren und diese Frage markiert als beantwortet. Der Grund Apache hat startet beim Booten gestoppt ist, dass ich versuche, eine httpd.conf Datei über Systeme hinweg zu teilen. Die Konfigurationsdatei muss Include Dateien aus Verzeichnissen, die in meinem Home-Verzeichnis vorhanden ist. Da das Home-Verzeichnis auf jedem Rechner anders, ich habe versucht, die ${HOME} Umgebungsvariable zu verweisen.

Dies funktioniert gut, wenn sie manuell starten, nachdem die Maschine gestartet wird, aber nicht beim Start, da die Umgebungsvariable ist noch nicht festgelegt. Wie oben erwähnt, finden Sie unter für weitere Informationen href="https://stackoverflow.com/questions/2195298/launchdaemons-and-environment-variables">.

Andere Tipps

fand ich meine Antwort auf dieses Problem hier:

https://trac.macports.org/ticket/36101

"Ich dies offenbar festgelegt, wenn meine lokalen dnsmasq Config Wechsel in / etc / hosts Ich habe meinen Server (Gala) auf den Loopback-Eintrag.

  

127.0.0.1 localhost gala

und dann änderte ich Server in /opt/local/apache2/conf/httpd.conf übereinstimmen:

  

Server Gala

Apache startet jetzt beim Booten für mich. "

Rob:

  1. das gleiche Problem hat: „sudo launchctl Last -w ...“, beginnt Apache2, während ich angemeldet wurde, aber nicht Arbeit während des Starts (die „-w“ sollte Sorge, dass getroffen hat). wie Sie auch bemerkt haben, scheint der Dämon mit launchctl registriert zu sein. Es wird mit "sudo launchctl Liste" und andere "sudo launchctl Last ..." angezeigt wird in der Fehlermeldung zur Folge hat.

  2. ich mit "sudo-Port laden apache2" gespielt und "sudo port Entlade apache2", kann aber nicht get httpd beim Neustart ausgeführt wird.

  3. Am Ende habe ich den Artikel Start MacPorts befreien. „Sudo port Entlade apache2“, geprüft mit „sudo launchctl list“, dass org.macports.apache2 mehr registriert wird nicht für die Inbetriebnahme

  4. Danach folgte ich die Schritte auf http://diymacserver.com > Text & Tabellen> Tiger> Start Apache. Ich hatte nur den Weg zur Anpassung von / usr / local / ... / opt / local /...

Nun ist die MacPorts Apache2 beginnt gut mit jedem Neustart.

Viel Glück, Klaus

Ich fand, dass meine MacPorts apache2 nicht am Boot-Start wegen eines „Fehlers“ in meinem httpd.conf.

Ich war mit

Listen 127.0.0.1:80
Listen 192.168.2.1:80
Listen 123.123.123.123:80 # Example IP, not the one I was really using

Und in Console.app ich sah

4/8/12 4:59:06.208 PM org.macports.apache2: (49)Can't assign requested address: make_sock: could not bind to address 192.168.2.1:80
4/8/12 4:59:06.208 PM org.macports.apache2: no listening sockets available, shutting down
4/8/12 4:59:06.208 PM org.macports.apache2: Unable to open logs

habe ich versucht, Berechtigungen für alle Log-Ordner Einstellung (trotz der Tatsache, dass Protokolle nur gut geschrieben wurden, wenn ich manuell gestartet apache2) und das hat nicht geholfen.

Auch wenn die Apache Dokumentation für Hören eindeutig

  

mehr Listen-Richtlinien können verwendet werden, um eine Anzahl von Adressen angeben und Ports zu hören. Der Server auf Anfragen von einem der aufgeführten Adressen und Ports reagiert.

habe ich beschlossen, zu versuchen, wieder die Umstellung auf nur mit

Listen 80

Und nach so apache2 tut, ist ohne Fehler oder Warnungen beim Booten starten.

Wenn Sie Subversion mit Apache verwenden sind, können Sie feststellen, dass Apache startet nicht, weil die mod_dav_svn.so-Datei / opt / local / libexec bewegt hat. Sie müssen Ihre Apache Startdateien Konto für den neuen Standort der Datei einzustellen.

In neueren Versionen von MacPorts Sie sudo port load apache2 anweisen, MacPorts laufen können Pflege des launchctl Setup zu übernehmen und automatisch den Vorgang starten. Um den Prozess zu laufen port unload zu stoppen.

Nach dem Laden Check /opt/local/apache2/logs/error_log für Fehler, einschließlich Konfigurationsprobleme.

Neben meiner vorherigen Antwort Ich habe auch festgestellt, dass manchmal Apache nicht anspringt, weil etwas anderes mit dem System noch nicht fertig.

Auf einer O X Server-Maschine ich die DNS verwendet auch einen „internen nur“ DNS-Namen für die Maschine zu erstellen und dieser Name in meiner Apache-Konfiguration verwendet wird. Manchmal, wenn Apache den DNS-Server zu starten versucht, ist noch nicht bereit und Apache nicht geladen werden, da der Hostname nicht gültig ist.

Ich habe auch diese auf andere Nicht-Server-Systemen ohne lokale DNS gesehen und wo etwas anderes von Apache benötigte noch nicht bereit sein müssen.

Eine Sache, die die apache2.wrapper bei /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper gelegen ist zu bearbeiten gearbeitet hat, dass MacPorts’ daemondo Anwendungen Apache zu starten.

Bearbeiten Sie die Start() Funktion einen sleep Befehl hinzufügen Apache ein wenig warten vor dem Start.

Original (Zeilen 14 bis 17 auf meinem Rechner)

Start()
{
    [ -x /opt/local/apache2/bin/apachectl ] && /opt/local/apache2/bin/apachectl start > /dev/null
}

Mit Wartezeit hinzugefügt

Start()
{
    [ -x /opt/local/apache2/bin/apachectl ] && sleep 10 && /opt/local/apache2/bin/apachectl start > /dev/null
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top