Befehl zum Überprüfen der Gültigkeit von Apache Server-Konfigurationsdateien

152

Ich suche nach einem Befehl, der die Gültigkeit der Konfigurationsdateien im Apache-Server auf Debian- und RHEL-Distributionen überprüft. Ich muss dies vor dem Neustart tun, damit es keine Ausfallzeiten gibt.

Sigtran
quelle

Antworten:

223

Überprüfen Sie: http://httpd.apache.org/docs/2.2/programs/apachectl.html

apachectl configtest
keatch
quelle
Ich AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
erhalte die
Fügen Sie Ihrer Apache-Konfiguration eine Zeile "ServerName whateveryoulike" hinzu. Ersetzen Sie, was auch immer Ihnen gefällt, durch einen beliebigen Namen für Ihren Server.
Pit
1
könnte sudo erfordern?
Miguel
36

Ein anderer Weg ist httpd -t. Daher ist es in der Windows-Version von Apache verfügbar. Überprüfen Sie http://httpd.apache.org/docs/2.4/programs/httpd.html

Gast
quelle
Seltsamerweise auf Ubuntu, wenn ich laufe, apachectl configtestbekomme ich Syntax OK, aber wenn ich laufe, apache2 -tbekomme ich AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf(unter anderem)
Buttle Butkus
6

apachectl configtestist die richtige Antwort. Leider habe ich eine Windows-Installation, bei der apachectl fehlt. Hier httpdhilft auch telefonieren.

Matthias M
quelle
1

Der Apache-Konfigurationstest ( apachectl configtestoder seine Entsprechungen) überprüft nur die Konfigurationsdatei (und die darin enthaltenen Dateien rekursiv) auf gültige Syntax. Die ursprüngliche Frage betraf jedoch die Vermeidung von Ausfallzeiten. Selbst wenn apachectl configtestkein Fehler zurückgegeben wird, kann ein tatsächlicher Neustart dennoch fehlschlagen und Ausfallzeiten verursachen.

Häufige Ursachen für solche Fehler sind fehlende oder nicht zugreifbare SSL-Zertifikate, fehlende Verzeichnisse für Protokolldateien oder ein fehlendes Website-Stammverzeichnis. Häufig werden solche Fehler durch das Entfernen des Verzeichnisses eines vhost verursacht, ohne die vhost-Apache-Konfigurationsdatei zu entfernen. Es wird dringend empfohlen, ein Werkzeug wie Marionette oder Ansible zu verwenden, um solche Inkonsistenzen zu vermeiden.

Angesichts der Tatsache, dass diese Frage der Hit Nummer eins beim googeln von "apache config lint" ist, dachte ich, ich würde dieses kleine Detail erwähnen ...

BertD
quelle