以前のエントリで WordPress のオブジェクトキャッシュを XCache の保存する方法について書きましたが、その後問題が発生したのでメモ。
複数の WordPress を1つのホストで稼働させる際に XCache Object Cache Plugin for WordPress 2.5+ を使用すると、オブジェクトキャッシュが混ざってしまうようです。
このサイトではhttp://blog.bluegold.me用とhttp://mama.bluegold.me用に2つの WordPress を稼働させています。それぞれ専用のデータベースを持つ独立したブログになっていますが、双方でオブジェクトキャッシュを有効にしたところ、しばらくして blog.bluegold.me 側の WordPress の管理コンソール(wp-admin)にログインできなくなりました。
XCache をインストールしてからは時間が経っていたので関係しているとは全く思わずに、MySQL 側でパスワードを何度も更新してログインを試みたり、WordPress 2.7.2 2.7.1 にバージョンを上げたばかりだったので、仕様が変わったのかと調べてみたりしたものの原因は分かりませんでした。
管理コンソールいろいろなIDとパスワードを入力しているうちに、blog.bluegold.me のユーザ名(bg)を入力すると「ユーザ名が違います」を表示されるのに、mama.bluegold.me 側のユーザ名(papa)を入力すると「パスワードが違います」と表示される事に気がつきました。ありえない事が起きているのが分かってきたので、試しにpapa の正しいパスワードを入力してみたところログインに成功し、bgのダッシュボードが表示されました。
ここでキャッシュが悪さをしている事がわかったので、オブジェクトキャッシュの使用を止めて、キャッシュをクリアするために PHP の FastCGI のプロセスを再起動しました。
調べてみると、やはり同じような問題を抱えている人はいるようで、以下のサイトに詳しく書かれていました。ユーザ情報が混在するのは仕様なんですかね...
http://jamescoletti.com/multiple-wordpress-installs-and-object-cache-collision
2009年5月3日時点で、まだ WordPress 2.7.2 は出ていません。どこから入手されたものでしょうか? もし、wordpress.org *以外* から入手したものとすれば (レンタルサーバーの自動インストールも含む)、それは「偽物」の可能性が大です。
悪意あるコードが紛れ込んでいるおそれがあるため、すぐにブログを停止して、WordPress 2.7.2 のファイルをすべて消去し、wp-config.php を作り直して、WordPress 2.7.1 および、テーマ・プラグインもすべて、配布元からファイルをダウンロードして入れ直してください。
確認してみたところ、使っているのは WordPress 2.7.1 でした。
勘違いでお騒がせしました。