MediaWikiとWordPressのアカウントを同期する。

extensionを見つけたので、メモ。

使い方

ルートディレクトリにWordPressをインストールしている場合

WordPressが既にルートディレクトリにインストールされていて、MediaWikiを、たとえば/wikiってディレクトリにインストールする場合。なお、MediaWikiのインストールは既に終えたものとする。


まず、wiki/LocalSettings.phpに次を書き込む

$wgUsePathInfo = false;
$wgArticlePath = '/wiki/$1';

補足として、wiki/.htaccessに次を書き込むと、URLが"/wiki/タイトル"となる。*1これはしてもしなくてもいい。

RewriteEngine On
RewriteRule ^wiki/(.*)$ /w/index.php?title=$1 [PT,L,QSA]
RewriteRule ^wiki/*$ /w/index.php [L,QSA]
RewriteRule ^/*$ /w/index.php [L,QSA]


次に、extensionをインストール。
まず、ファイルをダウンロードして、wiki/extensionに保存。
保存したなら、wiki/LocalSettings.phpに次を書き込む。なお、以下のコードはLocalSettings.phpの最下部に書いた方がいい。中途半端なところに書き足すと名前空間"特別"が開けなくなることがある。

require_once('extensions/AuthWP.php');
$wgAuth=new AuthWP();
WordPressMediaWikiがそれぞれ別のディレクトリにインストールされている場合

上と違うのは、WordPressを/wordpressというディレクトリにインストールしている場合。要はこんな状態。

このときextensionを使うにはどうすればいいか。


保存したextension(AuthWP.php)を開いて、$WP_relpathを探す。そうすると、$WP_relpath='..';ってなっているので、ここにWordPressをインストールしたディレクトリへのパス(絶対パスが無難)を記入する。
これだけ。

効果

  • WordPressアカウントが既にあれば、そのアカウントでMediaWikiにログインできる。
    • MediaWikiに該当するアカウントがなければ、その都度作成される。
  • MediaWikiでアカウントを作成したら、WordPressにもアカウントが作成される。
    • WordPressで作成されたアカウントの権限は"購読者"になる。*2
  • WordPressにログインしたら、MediaWikiにも自動的にログインされる。
  • MediaWikiにログインしたら、自動的にWordPressにログインされる。
    • ログアウト然り。*3
  • MediaWikiでメールアドレスや氏名を変更したら、WordPressのアカウント情報も反映される。
  • WordPressでメールアドレスや氏名を変更したら、MediaWikiのアカウント情報は次回ログイン時に反映される。

その他

動作環境について

他にも同様のextensionがあるけど、このextensionは2009年4月更新だから1.14xで十分動作するはず。(当時は1.14xがリリースされていた。)
公開しているこのサイトも1.15.1で動作しているから、もちろん使うことが出来る。
私が使っているMediaWikiは1.16alphaだから、このextensionは最新版でも大丈夫みたいだね。

管理者(sysop)アカウント

あと、WordPressのデフォルトの管理者アカウントは、はじめadminに固定されちゃっているので、以下を参照してMediaWikiのsysopと同一アカウントにするといいかもしれない。

*1:なお、4段落目のを書くとhttp://*.jp/のようなURLでアクセスするとMediaWikiに飛ばされるので、WordPressを中核に据えたい方は変えたほうがいいよ。

*2:WordPress側の設定で"購読者"以外となっていたら、その権限を割り当てられる。

*3:なぜか、WordPressでログアウトしたら〜の記述がないが、たぶんそうなると思う。