OS X Server Websites, die den Standard-Apache stören

1213
arik-so

Ich hatte den Standard-Mac-Apache-Server ausgeführt und alles funktionierte einwandfrei. Ich brauchte aber auch OS X Server für die Xcode-Testautomatisierung und DNS-Dienste. Deshalb habe ich ihn heute installiert.

Seit der Installation von OS X Server funktioniert Apache jedoch nicht mehr. http://127.0.0.1ist unzugänglich geworden, http://localhostobwohl der Website-Dienst in OS X Server aktiviert wurde.

Beim Überprüfen des Fehlerprotokolls sehe ich Folgendes:

[Fri Aug 22 20:22:38.678378 2014] [ssl:emerg] [pid 636] AH02580: Init: Pass phrase incorrect for key ::1:443:0 [Fri Aug 22 20:22:38.678753 2014] [ssl:emerg] [pid 636] SSL Library Error: error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag [Fri Aug 22 20:22:38.678775 2014] [ssl:emerg] [pid 636] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag [Fri Aug 22 20:22:38.678798 2014] [ssl:emerg] [pid 636] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=RSA) [Fri Aug 22 20:22:38.678817 2014] [ssl:emerg] [pid 636] SSL Library Error: error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib [Fri Aug 22 20:22:38.678831 2014] [ssl:emerg] [pid 636] AH02311: Fatal error initialising mod_ssl, exiting. See /var/log/apache2/error_log for more information [Fri Aug 22 20:22:38.678840 2014] [ssl:emerg] [pid 636] AH02564: Failed to configure encrypted (?) private key ::1:443:0, check /etc/certificates/[...].key.pem AH00016: Configuration Failed 

Anscheinend gibt es einen Fehler beim Initialisieren des mod_sslModuls. Nun, was ist, in der Standard - httpd.confin /etc/apache2/, mod_sslin erster Linie nicht aktiv war (und immer noch nicht, ich habe überprüft), so offensichtlich, O X Server ist eine andere Instanz von Apache als die üblichen begonnen wird .

Bei der Überprüfung which apachectlbekomme ich jedoch immer noch das Übliche /usr/sbin/apachectl. Wenn Sie jedoch einen /usr/sbin/apachectl restartBefehl ausführen, wird im Apache-Fehlerprotokoll ein neuer Stapel derselben Fehlermeldungen angezeigt.

Ich versuche, die Websites in OS X Server zu deaktivieren und dann apachectl zu starten. In OS X Server wird jedoch grünes Licht angezeigt. OS X Server und apachectl beziehen sich also eindeutig auf dieselbe Instanz von Apache.

Was ich mich wundere, ist folgendes: Wie kann ich die vorherige OS X-Standardversion von Apache ausführen, ohne OS X Server zu deinstallieren?

Ich habe versucht, OS X Server zu deinstallieren. Nachdem dies geschehen war, funktionierte Apache sofort wieder, und nach einer Neuinstallation von Server wurde es wieder beendet. Vielen Dank im Voraus.

BEARBEITEN: Im Fehlerprotokoll steht dort, dass die Passphrase für den Schlüssel falsch ist. Es gibt jedoch weder für den Schlüssel noch für das Zertifikat eine Passphrase.

0

1 Antwort auf die Frage

1
hui xue

Sie können den Quellcode von lesen /usr/sbin/apachectl.

apachectl start/restart/stopruft launchctl load -w $LAUNCHD_JOB, auf und der Job ist eine Startplist-Konfiguration/System/Library/LaunchDaemon/org.apache.httpd.plist

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Disabled</key> <true/> <key>EnvironmentVariables</key> <dict> <key>SERVER_INSTALL_PATH_PREFIX</key> <string>/Applications/Server.app/Contents/ServerRoot</string> <key>XPC_SERVICES_UNAVAILABLE</key> <string>1</string> </dict> <key>Label</key> <string>org.apache.httpd</string> <key>OnDemand</key> <false/> <key>ProgramArguments</key> <array> <string>/usr/sbin/httpd-wrapper</string> <string>-D</string> <string>FOREGROUND</string> <string>-f</string> <string>/Library/Server/Web/Config/apache2/httpd_server_app.conf</string> <string>-D</string> <string>WEBSERVICE_ON</string> </array> </dict> </plist> 

Der Job wird httpd-wrappermit der /Library/Server/Web/Config/apache2/httpd_server_app.confKonfigurationsdatei aufgerufen.

Daher besteht die Lösung darin, sudo apachctlohne Parameter aufzurufen, die httpdmit der Standardkonfigurationsdatei ( /etc/apache2/httpd.conf) aufgerufen werden .