使い方は簡単で、mod_infoモジュールを読み込むようにしておいて、起動時のオプションに -DDUMP_CONFIG を指定すればよい。
http://httpd.apache.org/docs/2.4/en/mod/mod_info.html#startup
-DDUMP_CONFIG実行例
(httpd.conf) ------------------------------------------------- LoadModule info_module modules/mod_info.so -------------------------------------------------
(コマンド実行例)
$ ./httpd -t -DDUMP_CONFIG
# In file: /usr/local/apache249/conf/httpd.conf
#   6:
ServerName www.example.com
#   9:
Listen 80
#  19:
StartServers 1
#  20:
MaxRequestWorkers 3
#  21:
MinSpareThreads 3
#  22:
MaxSpareThreads 3
#  23:
ThreadsPerChild 3
#  24:
MaxConnectionsPerChild 0
#  25:
AsyncRequestWorkerFactor 2
#  41:
KeepAlive on
#  42:
KeepAliveTimeout 5
#  43:
MaxKeepAliveRequests 100
#  50:
LogFormat "%h %l %u %t \"%r\" %>s %b" common
#  51:
CustomLog logs/access_log common
#  60:
LogLevel warn mpm_event:trace6
#  66:
Listen 443
#  71:
SSLRandomSeed startup file:/dev/urandom  256
#  72:
SSLRandomSeed connect builtin
#  74:
SSLSessionCache shmcb:logs/scache(1024000)
#  77:
SSLCryptoDevice builtin
#  81:
SSLFIPS off
#  84:
SSLPassPhraseDialog builtin
#  86:
LogFormat "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" ssl_log
#  88:
<VirtualHost _default_:443>
  #  89:
  ErrorLog logs/ssl_error_log
  #  90:
  CustomLog logs/ssl_access_log ssl_log
  #  92:
  SSLEngine on
  #  95:
  SSLSessionCacheTimeout 300
  #  97:
  SSLCertificateFile conf/server.crt
  #  98:
  SSLCertificateKeyFile conf/server.key
  # 102:
  SSLProtocol all
  # 105:
  SSLCipherSuite HIGH:MEDIUM
  # 108:
  SSLCompression off
  # 111:
  SSLHonorCipherOrder off
  # 114:
  SSLInsecureRenegotiation off
</VirtualHost>
# 153:
ExtendedStatus on
# 155:
<Location /server-status>
  # 156:
  SetHandler server-status
</Location>
# 164:
Alias /cgi-bin /usr/local/apache249/cgi-bin
# 166:
<Directory /usr/local/apache249/cgi-bin>
  # 167:
  SetHandler cgi-script
  # 168:
  Options ExecCGI
</Directory>
Syntax OK
ただし、この出力では、既にIfModuleやIncludeは処理済みなので、出力されない。
.htaccessの内容も出力されない。
ServerRootも出力されないが、これは -DDUMP_RUN_CFG オプションを指定すれば出力される。
LoadModuleも出力されないが、これは -M オプションを指定すれば分かる。
-DDUMP_RUN_CFGの出力例
$ ./httpd -t -DDUMP_RUN_CFG ServerRoot: "/usr/local/apache249" Main DocumentRoot: "/usr/local/apache249/htdocs" Main ErrorLog: "/usr/local/apache249/logs/error_log" Mutex ssl-stapling: using_defaults Mutex ssl-cache: using_defaults Mutex default: dir="/usr/local/apache249/logs/" mechanism=default PidFile: "/usr/local/apache249/logs/httpd.pid" Define: DUMP_RUN_CFG User: name="#-1" id=4294967295 not_used Group: name="#-1" id=4294967295 not_used
-Mオプションの出力例
$ ./httpd -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_event_module (shared) unixd_module (shared) authz_core_module (shared) log_config_module (shared) mime_module (shared) ssl_module (shared) socache_shmcb_module (shared) status_module (shared) alias_module (shared) cgid_module (shared) info_module (shared)
ときどき、読み込まれた設定を確認したいことがあり、mod_infoで ?config クエリを使っていたりしたが、 mod_infoのステータス画面の出力設定を残すのが嫌な場合もあった。
これなら起動時に確認され、infoページへのアクセスの設定もないので、都合がよさそうだ。
ただし、今、実行中のプロセスの設定内容を出力させるには、mod_infoの情報ページにアクセスしなくてはならないようだ。
注意点
-DDUMP_CONFIGは読み込んだ設定情報を出力しているだけで、有効な設定だけを出力しているわけではない。
たとえば、設定ファイルに重複した設定があった場合、
その内容がそのまま出力される。
StartServers 1 StartServers 10
その内容がそのまま出力される。
$ ./httpd -t -DDUMP_CONFIG # In file: /usr/local/apache249/conf/httpd.conf # 6: PidFile conf/httpd.pid # 9: ServerName www.example.com # 12: Listen 80 # 22: StartServers 1 # 23: StartServers 10 :


