Ich versuche herauszufinden, was die vollständige Konfiguration eines httpd-Setups ist.
Alle Konfigurationsdateien sind in verschiedenen Dateien verteilt (/etc/httpd/conf.d, httpd.conf, verschiedene Mod-Konfigurationen).
Gibt es eine Möglichkeit, die endgültige httpd-Konfiguration aufzulisten?
Wie die gesamte laufende Setup-Konfiguration in einer einzigen Datei?
apachectl -S
zum Ausführen der Konfiguration,apachectl -M
um geladene Moduleapachectl -S
Sie weder "die vollständige Konfiguration" noch "die gesamte laufende Setup-Konfiguration in einer einzigen Datei".Antworten:
Wie von arco444 angegeben, können Sie
apachectl -S
eine Übersicht über die VirtualHosts anzeigen, die derzeit in den Konfigurationen ausgeführt werden, undapachectl -M
alle aktuell geladenen Module anzeigen. Mir ist kein Tool bekannt, mit dem die ausführliche Ausgabe aller analysierten Konfigurationen (und in welcher Reihenfolge) angezeigt werden kann Sie wurden beim Start von httpd analysiert. Ich würde jedoch empfehlen, dass Sie sich mit der allgemeinen Struktur der httpd-Konfigurationsdateien vertraut machen :Von besonderer Bedeutung für Ihre Frage: Die 'Haupt'-Apache-Konfigurationsdatei befindet sich in
/etc/httpd/conf/httpd.conf
(im Bereich von Zeile 221 einer Standard-httpd-Installation aus den in CentOS 6 enthaltenen Repos, die Sie vermutlich basierend auf Ihren Post-Tags verwenden). und die 'zusätzlichen' Konfigurationsdateien befinden sich in/etc/httpd/conf.d
und müssen explizit in der Hauptkonfigurationsdatei enthalten sein. Wenn Sie beispielsweise in derhttpd.conf
Datei nach dem Begriff 'Include
' suchen, finden Sie die Zeile, inInclude conf.d/*.conf
der alle Erweiterungsdateien.conf
im Unterverzeichnis enthalten sindconf.d
- in alphabetischer Reihenfolge. Sie sollten sich daher mit der Bedeutung der Analyse von Konfigurationsdateien vertraut machen irgendwann wenn möglich.Abgesehen davon empfehle ich, wenn Sie einen Shell-basierten Texteditor wie vim verwenden, standardmäßig die Zeilennummerierung und Syntaxhervorhebung zu aktivieren, damit sich so lange Konfigurationsdateien leichter analysieren und navigieren lassen - im Fall von vim Dazu erstellen Sie in Ihrem Home-Verzeichnis eine Datei mit dem Namen
.vimrc
(oder hängen sie an eine vorhandene an) und fügen die folgenden Zeilen hinzu:quelle
Wie in der Apache HTTP Server-Dokumentation beschrieben
DUMP_CONFIG
erfordertmod_info
aktiviert :a2enmod info
!Gehen Sie in Ubuntu wie folgt vor
Wenn Sie die Zeilennummern entfernen möchten, tun Sie dies
oder in eine Datei umleiten
quelle
Bitte verwenden Sie dazu mod_info: http://httpd.apache.org/docs/2.2/mod/mod_info.html
Der einzige Nachteil ist, dass es Ihnen nicht viel hilft, wenn Sie es zum Wiederherstellen einer gelöschten Konfiguration benötigen und das Modul noch nicht geladen haben
quelle
Wenn ich zu viele Apache-Konfigurationen pflegen musste, hatte ich mich mit einem Skript ausgestattet, das genau das tat, was Sie gefragt hatten. Es hat mir sehr geholfen.
Sie können die Umgebungsvariable APCALL festlegen, wenn Sie die Kommentare und Leerzeilen sehen möchten, was ich meistens nicht getan habe. Vorsichtsmaßnahme: Es muss von ServerRoot ausgeführt werden.
quelle
Ich habe ein Skript (leider in Perl; verzeihen Sie mir, es ist alt), das die Konfigurationsdateien glättet, Kommentare entfernt (standardmäßig) und
# FILE
Kommentare enthält , damit Sie herausfinden können, welche Datei das Gesuchte enthält.Ich habe es mit Apache httpd geschrieben, obwohl es auch mit Oracle OHS verwendet wird
https://github.com/cameronkerrnz/scriptorium/blob/master/httpd-dump-config
Besonders nützlich zum Vergleichen von Konfigurationen auf verschiedenen Maschinen mit SSH und diff / meld / etc.
Beispiel:
Hier ist ein Beispiel mit diff (CLI) und meld (GUI):
Ich habe dies im Laufe der Jahre häufig verwendet, als ich durch eine Konfiguration mit Tausenden von Konfigurationszeilen navigierte, die über viele Dateien verteilt waren.
quelle