Wenn der Apache2 Server plötzlich streikt und als Fehlermeldung nur ein "AH00016: Configuration Failed" kommt, hilft diese Anleitung vielleicht zur Lösung.
Die Analyse der Apache-Konfiguration wird ja in solchen Fällen meist als erstes durchgeführt:
apachectl configtest
Das Ergebnis ist bei diesem Fehler allerdings meist ernüchternd (jedoch richtig):
Syntax OK
Der Syntax der Apache2 Konfiguration und Config-Dateien ist auch richtig; es ist meist ein fehlerhaftes SSL Zertifikat. Nur welches, wenn auf dem Apache ein paar mehr Server / Domains mit SSL laufen ?
Die Lösung bietet das Tool strace, welches einfach per "apt-get" installiert werden kann:
apt-get install strace
Mit hilfe dieses Programmes kann der Start des Apache-Servers detailliert analysiert und das fehlerhafte SSL Zertifikat identifiziert werden:
strace -f apache2ctl start
Wer jetzt die meist sehr umfangreiche Ausgabe nicht verfolgen konnte, der kann diese auch durch folgenden Befehl in eine Datei umleiten lassen:
strace -f apache2ctl start &> log.txt
Jetzt finden Sie die vollständige Ausgabe der Apache2-Start-Analyse in der Datei "log.txt".
Am Ende finden Sie auch die o.a. Fehlermeldung des Servers:
[pid 7199] exit_group(1) = ? [pid 7199] +++ exited with 1 +++<... wait4 resumed> [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0, NULL) = 7199 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=7199, si_uid=0, si_status=1, si_utime=3, si_stime=7} --- rt_sigreturn() = 7199 write(1, "Action 'start' failed.\n", 23) = 23 write(1, "The Apache error log may have mo"..., 48) = 48 exit_group(1) = ? +++ exited with 1 +++
Suchen Sie dann in den Zeile davor rückwärts die Fehlermeldung, welche z.Bsp. so aussehen kann:
[pid 7218] close(57) = 0 [pid 7218] munmap(0x7f70ca8b2000, 4096) = 0 [pid 7218] open("/home/example/ssl.key", O_RDONLY) = 57 [pid 7218] fstat(57, {st_mode=S_IFREG|0700, st_size=3268, ...}) = 0 [pid 7218] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f70ca8b2000 [pid 7218] read(57, "-----BEGIN PRIVATE KEY-----\nMIIJ"..., 4096) = 3268 [pid 7218] close(57) = 0 [pid 7218] munmap(0x7f70ca8b2000, 4096) = 0 [pid 7218] write(21, "[Sun May 01 09:34:22.173754 2016"..., 182) = 182 [pid 7218] write(2, "AH00016: Configuration Failed\n", 30) = 30 [pid 7218] select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout) [pid 7218] close(53) = 0
Im oberen Beispiel ist es die Datei "/home/example/ssl.key", welche das Problem verursacht.
Korrigieren Sie das SSL Zertifikat (die Datei neu auf den Server kopieren o.ä.) und starten Sie den Apache dann erneut:
/etc/init.d/apache2 restart
Meist wird er dann problemlos wieder starten:
[ ok ] Restarting apache2 (via systemctl): apache2.service.