#4930

空白の裏に潜む虫


66万アクセスありがとうございます。
ちょうどタイムリーにアクセス数統計周りで書き残しておきたいことがあったのでそれについて。

自分が運営しているサイトは2005年04月から毎月01日にアクセス数を記録していて、
今月でかれこれ135ヶ月目になります。
ちなみに月間統計以前は週間アクセス数を記録していました。
本家ブログに至ってはそれとは別に二代目の終わり近くまで日間アクセス数も記録していました。
特に2005年当時はことあるごとにミニサイトやらなんやらを開設していたので、
集計対象サイトの数も多く、いろんなサイトの管理画面にアクセスしては
数字を打ち込んでいた記憶がありますが、
更新が止まってアクセス数も月間1桁台が続いたサイトは統計を止めることにしてからは
次々に統計を打ち切ることになり、今現在に至ってはたった5本に落ち着いています。

で、その5本のうち二代目サブブログで『ものメモ。』という、
更新は遙か前に止まっているにもかかわらず
未だにちょびちょびアクセス数があるので統計自体はストップしていないブログがあるのですが、
今回の統計のためにアクセスしたらサイトが完全に真っ白になっていました。
FTPに接続してディレクトリを見てみると
数百バイトのインデックスファイルがあるのみで、あとは空っぽという。正直焦りました。
これが本家ブログだったら、今絶賛衰退中とはいえかなりパニクっていただろうと思います。

最初、ついにセキュリティが破れたのかと思って
FTP接続設定やWordPressのパスワードが昔の汎用のものだったらどうしよう、
などと思っていたのですが、原因はまったく違うところにありました。
まずFTP接続時にフォルダ内がほぼ空っぽだったのは、
単純にhtaccessでURLを転送するように指定していたからでした。すっかり忘れてた。
Aというディレクトリの中身をBというアドレスでアクセスしたときにも表示するようにしても、
当然Bというディレクトリの中身は空っぽなわけです。
この場合はAというディレクトリの中身を見に行けば解決。

サイトが全部真っ白になっていた原因は、
結論から言えば『WP to Twitter』というプラグインの致命的エラーでした。
PHPは致命的なエラーが発現した場合すべての動作を停止しますが、
このときにエラー表示を指定する設定値がOFFになっていると、
エラーメッセージそのものも表示されません。
エラー表示の切り替えはふつうサーバー側に置いてある「php.ini」というファイルに準拠しますが、
ini_set()関数を使うことでファイル別に個別に設定することができ、
WordPressの場合はwp-config.phpで定数として定義されている
「WP_DEBUG」の値を1(=TRUE)に設定すると警告表示がONになります。
今回はまずwp-config.phpだけダウンロードして警告表示をONにしてからアップロードし、
出てきたエラーメッセージのパスから原因らしきプラグインを特定、
あとはFTPソフトから当該プラグインをディレクトリごと削除して解決しました。

サブブログはある程度バージョンが古くなると自動更新する仕組みになっていて、
WP自体のバージョンとプラグインの相性が合わなくなってエラーを吐くことはたまにあるので、
プラグイン自体が直接の原因と決めつけることはできませんが、
WordPressにはこういうこともあるんだなということで良い勉強にはなりました。
というわけでこのブログがある日突然真っ白になっていたらそれはたぶんWordPressのせいです。