私はhttpdセットアップの完全な完全な構成が何であるかを把握しようとしています。
すべての構成ファイルは異なるファイル(/etc/httpd/conf.d、httpd.conf、さまざまなmod構成)に散在しています
最終的なhttpd構成をリストする方法はありますか?
単一のファイルで実行中のセットアップ構成全体が好きですか?
Arco444で述べたように、apachectl -S
を使用して現在構成から実行されているVirtualHostsの概要を表示し、apachectl -M
を使用して現在ロードされているすべてのモジュールを表示できます-解析されたすべての構成の詳細な出力どの順序で解析されたか)はhttpdの起動時に行われますが、httpd構成ファイルの一般的な構造に精通することをお勧めします。
あなたの質問に特に注意してください:「メイン」Apache configファイルは/etc/httpd/conf/httpd.conf
にあります(CentOS 6に含まれるリポジトリからのデフォルトのhttpdインストールの221行の領域で、あなたはあなたの投稿タグに基づいて使用していると仮定します) 、および「補足」構成ファイルは/etc/httpd/conf.d
にあり、メイン構成ファイルに明示的に含める必要があります。たとえば、httpd.conf
ファイルで用語「Include
」を検索すると、サブディレクトリInclude conf.d/*.conf
の拡張子.conf
のすべてのファイルを含む行conf.d
がアルファベット順に表示されるため、慣れる必要があります。可能であれば、ある時点で設定ファイルを解析することの重要性を理解してください。
余談ですが、vimなどのシェルベースのテキストエディターを使用している場合は、デフォルトで行番号付けと構文の強調表示を有効にして、そのような長い構成ファイルを自分で解析してナビゲートしやすくすることをお勧めします-vimの場合、ホームディレクトリに.vimrc
というファイルを作成する(または既存のファイルに追加する)ことにより、次の行を追加します。
set nu
syntax on
そのためにmod_infoを使用してください: http://httpd.Apache.org/docs/2.2/mod/mod_info.html
唯一の欠点は、削除された構成を回復する必要があり、モジュールをまだロードしていない場合、あまり役に立ちません
Apache HTTP Server Documentation で説明されているように
Config define -DDUMP_CONFIGが設定されている場合、mod_infoはサーバーの起動時に事前に解析された構成をstdoutにダンプします。
httpd -DDUMP_CONFIG -k start
DUMP_CONFIG
にはmod_info
enabledが必要です:a2enmod info
!
Ubuntuで次の操作を行います
Sudo Apache2ctl -DDUMP_CONFIG
行番号を削除したい場合は
Sudo Apache2ctl -DDUMP_CONFIG | grep -vE "^[ ]*#[ ]*[0-9]+:$"
またはファイルにリダイレクト
Sudo Apache2ctl -DDUMP_CONFIG | grep -vE "^[ ]*#[ ]*[0-9]+:$" > /path/to/dump.conf
既知の制限
mod_infoは、元の構成ファイルを読み取るのではなく、解析された構成を読み取ることで情報を提供します。解析された構成ツリーの作成方法の結果として、いくつかの制限があります。
- 解析された構成に保存されるのではなく、すぐに実行されるディレクティブはリストされていません。これらには、ServerRoot、LoadModule、およびLoadFileが含まれます。
- 含めるなど、構成ファイル自体を制御するディレクティブはリストされていませんが、含まれている構成ディレクティブはリストされています。
- コメントはリストされていません。 (これは機能と見なされる場合があります。)
- .htaccessファイルの構成ディレクティブはリストされません(これらは永続的なサーバー構成の一部を形成しないため)。
- のようなコンテナディレクティブは通常リストされていますが、mod_infoは終了の行番号を把握できません。
- Mod_Perlなどのサードパーティモジュールによって生成されたディレクティブはリストされない場合があります。