MediaWikiにMemcachedを導入したらSession周りで一瞬困った話
2週に一回の更新になりつつある本ブログです。今回のネタはMediawikiの運用に関してです。
問題
参加しているサークルの内部で利用するMediawikiを運用しているのですが、今回、高速化を狙ってmemcachedを導入してみました。
# in LocalSettings.php
## Shared memory settings
# 削除 $wgMainCacheType = CACHE_NONE;
# 以下を追加
$wgMainCacheType = CACHE_MEMCACHED;
$wgMemCachedServers = array (
0 => '127.0.0.1:11211',
);
すると、ログイン画面で正しいログイン情報を送信しても、
ログイン・セッションに問題が発生しました。セッションハイジャックを防ぐために操作は取り消されました。ブラウザの「戻る」を押して直前のページを再度読み込んだ後に、もう一度操作を行ってください。
(英語運用だとhere seems to be a problem with your login session; this action has been canceled as a precaution against session hijacking. Go back to the previous page, reload that page and then try again.)
と表示されて全くログインできなくなります。
環境
sudo apt-get install mediawiki mediawiki-extensions
解決法
Mediawiki Forumのこのスレッド
[RESOLVED] Login Problem - MediaWiki
の最後の投稿にあるとおり、Sessionの保存場所をMemcachedに指定する必要があります。
# in LocalSettings.php # 追加 $wgSessionsInMemcached = true;
Reference
最初にここを見るべきでした(後から気づいた)
memcached - MediaWiki