apacheのDOCUMENT_ROOTを知る方法

httpdの変更が反映されない

とあるサーバーで作業しているときにDocument Root変更したいなと思い/etc/httpd/conf/httpd.confを編集してservice httpd restartをしても全く反映されない現象に出会った。

結論から言うと参照しているhttpd.confが別のものだったからなんだが、そこに行き着くまでを備忘録として記録しておく。

環境

apacheがどのhttpdを使用しているか確認

$ ps aux | grep apache

apache   23508  0.0  1.7 531692 17620 ?        S    00:26   0:00 /usr/sbin/httpd -DFOREGROUND
apache   23509  0.0  2.0 429980 20692 ?        S    00:26   0:00 /usr/sbin/httpd -DFOREGROUND
...

/usr/sbin/httpd を使用していることがわかる

httpdの設定確認

# 先程確認したhttpdでコマンドを叩く
$ /usr/sbin/httpd  -S -D SSL

VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server 155.129.XXX.XXX (/etc/httpd/conf.d/my.conf:2)
         port 80 namevhost 155.129.XXX.XXX (/etc/httpd/conf.d/my.conf:2)
         port 80 namevhost XXXXXXXX.jp (/etc/httpd/conf.d/my.conf:13)
...

/etc/httpd/conf.d/my.conf を使用していることがわかる

httpdの修正

あとはvimなりなんなりで修正して反映させる

# 編集
$ vim /etc/httpd/conf.d/my.conf
# 反映
$ service httpd restart

まとめ

解決に時間かかるときって大体しょうもないことが多いよね。

(DOCUMENT_ROOTを知る方法というかhttpd.confの場所を知る方法になってしまったがまあいい。)