Ich erstelle ein .pkg-Installationsprogramm für ein Produkt, das den Apache-Server in OS X erweitert.
Über das Postinstall-Skript in der .pkg-Datei kann ich derzeit das Standard-Setup von Yosemite und El Capitan konfigurieren, indem ich dem /etc/apache2/other
Ordner eine product.conf-Datei hinzufüge.
Um die neue Konfiguration zu laden, mache ich einfach Folgendes aus dem Postinstall-Skript:
launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist #if not loaded
apachectl stop #if already started
apachectl start
Die Installation von OS X Server ändert die Art und Weise, wie Apache konfiguriert wird, sodass der obige Ansatz fehlschlägt. Wie kann ich also den OS X-Server von meinem Postinstallationsskript aus so konfigurieren, dass er dasselbe tut?
Die Automatisierung von server.app-Komponenten ist ziemlich trivial, da Sie damit serveradmin
die schwere Arbeit erledigen können.
sudo serveradmin start web;
Einen Dienst zum Starten aufzufordern, wenn er bereits läuft, ist harmlos/idempotent.
Gehen Sie wie folgt vor, um zwischen dem von der Server.app konfigurierten Apache und dem "Normalzustand" zu wechseln:
if serverinfo -q --software; then
cp product.conf /Library/Server/Web/Config/apache2/other
serveradmin stop web
serveradmin start web
else
cp product.conf /etc/apache2/other
launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
apachectl stop #if already started
apachectl start
fi
start
Befehls erfolgt? Ich werde in meinem Skript Folgendes versuchen: serveradmin stop web
thenserveradmin start web
/etc/apache2/other/
nach kopiert /Library/Server/Web/Config/apache2/other/
, gestoppt serveradmin
und gestartet, und jetzt funktioniert es! . Danke @bmike
Fahrrad
Joachim Bratteli
product.conf
Datei zu erstellen. Können Sie erklären, was Sie mit "fork based on SIP" meinen?Joachim Bratteli
Fahrrad
Joachim Bratteli
launchctl unload
Mein Ansatz scheint für El Capitan zu funktionieren, da ich ohne Probleme ein Follow-by machen konntelaunchctl load
.Joachim Bratteli
serverinfo -q --software
. Ich habe getestet und festgestellt, dass es nicht notwendig ist, irgendetwas mit SIP zu tun, um die Konfiguration des Websites-Dienstes der Server.app hinzuzufügen.Fahrrad
Joachim Bratteli