MediaWikiへの移行検討

移行先システムの候補であるMediaWiki(WikiPediaで使用されているWikiシステム)を検証したんでまとめときます
主に現行のPukiWikiとの差異を見て使いやすいようにカスタムできるかを検討した

検証環境

MediaWiki1.25.1
Apache2.4.12
PHP5.4.41
MySQL5.5.43

雑感

WikiPediaの仕組みだけあってお固い管理が基本でカスタマイズもややしにくい印象
ページ編集面でやれることはあまり変わらなさそうだが書式はわりと違う
データ量に対する拡張性や応答性のチューニングは細かくできそう
「ページ凍結権などを持つ複数のサブ管理者」とかは簡単に設定できそう
日本語の情報源がちょっと少ない?日本では人気薄めなんだろうか?

移行にあたって問題になりそうな機能と対策

投稿(編集)時にIPアドレスが丸出しになる

変更履歴ページなどに編集者のIPアドレスが表示されてしまう
ソースコードを一行いじれば隠蔽できそうだが影響範囲は不明(一応普通に動作しそうなことは確認)

/includes/User.php 内の関数「getName()」を編集

//$this->mName = IP::sanitizeIP( $this->getRequest()->getIP() );
$this->mName = 'なまえをいれてください';

「最近の更新」や「履歴表示」からIPアドレスを固定文字列に置き換えることに成功
が、設定変更後の編集からのみ適用される
IPアドレス関連の機能の動作がどうなるかは不明
他のページにおいてIPがすべて除去されているか?も確認が必要

アカウント新規作成機能

わざわざ個々のユーザーがログインしてどうのこうのは要らないと思うので消す
設定により権限をなくせばメニューから消える

権限の変更:全員→アカウント作成不可へ
LocalSettings.php に以下の行を追加

$wgGroupPermissions['*']['createaccount'] = false;

議論タブ

ページの編集などについて議論するためのページが個々のページに付属しているが特に要らないと思う
設定によりメニューから消すことが可能

/skins/Vector/variables.less に以下の行を追加(スキン毎に設定が必要)

#ca-talk { display:none!important; }

ページの削除権がない

管理者以外はページの削除ができないが不便なので誰でも削除可能にしたい
設定により権限をつければ誰でも削除可能になる

権限の変更:全員→ページ削除可能へ
LocalSettings.php に以下の行を追加

$wgGroupPermissions['*']['delete'] = true;

タイムスタンプが世界標準時で表示される

なんとも見づらい
設定により日本時間に修正可能
デフォルトのタイムゾーンを日本(JST+9)に

LocalSettings.php に以下の行を追加

$wgLocaltimezone="Asia/Tokyo";
$wgLocalTZoffset = +9 * 60;

まとめ

今のところ移行と立ち上げ時にそれなり面倒が有りそう
管理がお固いのでPukiWikiのような自由度を持たせようとすると色々いじる事になる
MediaWikiに変えるならこのタイミングだけれども移行のデータ量からくる手間なども考えるとPukiwiki系の使用も検討したい

Pukiwiki公式の最新版1.5.0が今現在
リリース:2014-07-19 最新コミット:2015-03-25
という状況なので継続してPukiWiki使ってもいいんじゃないの?という気もする