Apacheで、新たに追加したvirtualhostの設定が正しく読み込まれるかどうかを確認したいことがあったので、その時のコマンドをメモしておく。検証したApacheのバージョンは2.2系。
反映される予定のvirtualhostの設定はコマンド1発で確認可能
ずばり、
- httpd -S
- apachectl -S
のどちらでもいける。実行結果は下記のようになる:
1 2 3 4 5 6 7 8 9 |
bash-4.2# 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 bash-4.2# |
httpd -Sの使いどころ
大抵の場合、httpd.confにはconf.dディレクトリ配下の.confファイルを読み込む設定が書いてある:
1 2 3 4 5 6 7 8 |
// ... # # Load config files from the config directory "/etc/httpd/conf.d". # Include conf.d/*.conf // ... |
そのため、もし新たにvirtualhostの設定を追加したい場合は
- 既存のvirtualhost.confに追記する
- 新たなXXX.confファイルを設置し、そこに新しいvirtualhostの設定を記載する
の2択になる。
その後、apachectl configtestで文法に問題が無いか確認した後にapachectl gracefulで改めて.confの設定を読み込ませるのが通例なわけだが、それでもし疎通ができなかった時にhttpd -Sを使えば問題の切り分けがしやすくなる。