httpd -tとconfigtestの違い

7月 24, 2010

Apache文法テスト用のコマンド、”httpd -t”と”apachectl configtest”。
実は今まで全く同じものだと思っていたのだが、微妙に違うらしい、と発見した。。

結論から言うと、環境変数を読み込むか読み込まないかの違いということになる。
apachectl configtestはそのシェル内でhttpd -tを実行するのだが、加えてusr/local/apache2/bin/envvars
(Debian系だと/etc/ apache2/envvars)を読み込んで処理をする。
envvarsには起動・停止時のオプションなどApache用の環境変数を定義することが可能。

おそらく通常のApacheの利用状態ではhttpd -tとconfigtestの間で違いを感じること
はないと思われるが、自作のDSOを組み込むなど、独自の環境を構築していると結果が
変わってくることもある。

以下の3つはやってることは一緒で、結果も同様になるはず。

# /usr/local/apache2/bin/apachectl configtest
# service apache configtest

または

# source /usr/local/apache2/bin/envvars
(この後に続けて以下実行)
# /usr/local/apache2/bin/httpd -t


# service apache configtest はおそらくApache2.2以降で利用可能。

関連記事
Apacheの構文テスト

Posted by Le Blue | Categories: Apache |

No Responses so far | Have Your Say!

Comments are closed.