先週取り上げた(1と2)Memcached+Drupalで落とし穴にはまってました。まあ、Memcachedの仕組みから言ってそういう動作するのは当然なんですが、すっかり見落としていました。
何をしたかというと、先日紹介した設定だけで、一つのサイトにつき1Drupalという関係であれば何の問題もありません。問題はマルチサイトの場合に、あの設定だけでは不可解な動作になります。テーマの適用がめちゃくちゃになったり、ログインしてたと思ったら、強制的にログアウトさせられたり、CSSキャッシュが壊れてしまったりというはちゃめちゃな動きをします。
改めて考えてみれば、Memcachedって、特に接続認証したりしないのでキャッシュ変数の取り出しは誰でもできちゃうし、同じDrupalのキャッシュ変数値の名前は同じなんでそういう動きになっても不思議じゃないですね。
で、どうするんだろうと思っていましたら、解決策がありました。
<?php
$conf = array(
'memcache_key_prefix' => 'something_unique',
);
?>
プレフィックス設定を追加すれば解決です。ま、当然って言えば当然ですね。それぞれのサイト毎に異なるプレフィックスを設定してあげれば無事動作するようになりました。
Tweeterでこのブログをつぶやいたり、ソーシャル・ブックマークに登録する時は以下のリンクをお使い下さい。