[Apache] 2.2でVirtualhostの構成が正しく読み込まれるかを確認する方法
2020/04/19
masyus
Apacheで、新たに追加したVirtualhostの設定が正しく読み込まれるかを確認したいことがありました。今回はその時活用したコマンドを紹介します。検証したApacheのバージョンは2.2系です。
virtualhostの構成はhttpd -Sもしくはapachectl -Sで確認可能
見出しにも書きましたが、
httpd -S
apachectl -S
のどちらでも確認可能です。実行結果の例は下記のようになります。
httpd -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server local.hogehoge.jp (/etc/httpd/conf.d/virtualhost.conf:5)
port 80 namevhost local.hogehoge.jp (/etc/httpd/conf.d/virtualhost.conf:5)
port 80 namevhost local.fugafuga.jp (/etc/httpd/conf.d/virtualhost-additional.conf:5)
Syntax OK
Syntax OK
とあるので、文法チェックもしてくれるようです。
httpd -SもしくはSもしくはapachectl -Sの使いどころ
大抵の場合、httpd.confにはconf.dディレクトリ配下の.confファイルを読み込む設定が書いてあります。
// ...
#
# Load config files from the config directory "/etc/httpd/conf.d".
#
Include conf.d/*.conf
// ...
そのため、もし新たにVirtualhostの設定を追加したい場合は
- 既存のvirtualhost.confに追記する
- 新たなconfファイルを設置し、そこに新しいVirtualhostの設定を記載する
の2択になります。その後、
apachectl configtest
で文法に問題が無いか確認した後に
apachectl graceful
で、改めてconfファイルの設定を読み込ませるのが定石です、
もしgraceful
まで問題なく完了できたのに想定したリクエストがVirtualhostで意図通りに処理されなかった場合、今回のhttpd -S
を使えば問題の切り分けがしやすくなります。