WordPressサイトでリソースモニタリングするときの注意

少しハマッたのでメモしておきます。

サーバのリソースモニタリングツールを使えば、CPU/メモリ使用率やロードアベレージ、Netstatなどのたくさんの項目をモニタリングできます。もちろんWebサーバのステータスもです。ところが僕のサイトで、ある日から急にApacheのステータスが取れなくなっていました。。ま、真っ白。。

(Muninを使用、他にもCactiやGangriaなどいくつかツールはあります)

WebサーバのステータスはApache2(mod_status)だと /server-status を見ます。ここにアクセスできなくなったのはどうやらWordPress本体をアップデートしたときだったようで、原因はWordPressによる .htaccess 強制書き換えです。その書き換え方なんですが、差分チェックなどもなく強制的に上書きする仕様のようです。どういうことかというと、まず、WordPressによって .htaccess に書き込まれるディレクティブを以下に示します。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

僕はここに自分でいくつかルールを追記していました。その中には /server-status のルールもありました。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^server-status$ - [L]   # server-status へのアクセスはrewriteしない
RewriteRule ^labs/ - [L]
RewriteRule ^mod/ - [L
## あといろいろ、省略
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

で、WordPress本体をアップデートしたときに追記した部分が全部なくなっていたようです。。とりあえず server-status の為のルールをもう一度追記すると、Apacheのステータスが取れてMuninのグラフもきちんと表示されるようになりました。たぶん # BEGIN WordPress から # END WordPress の中に自分でルールを書いちゃうとマズイみたいです。そういうのは .htaccess じゃなくて httpd.conf の方に書けということですね。

あわせて読む:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です