Mediawiki 関連資料

提供:GizmoLabs - だいたい CAD LISP なサイト

資料っていうかメモ書き




スマホで skin を切り替える

半強制でゆるく切り替え表示させたいならうちでも使ってる MobileFrontend。 ただ、ちょっと独特な Extension なので導入がめんどい。

よくある USER_AGENT から判別するのは↓の使えばいいと思う。

簡単に済ますなら、Localsetting.php で UA 別で適当に割り当てるようにする

if (preg_match("/(mobile|webos|opera mini)/i", $_SERVER['HTTP_USER_AGENT'])) {
    $wgDefaultSkin = 'モバイル向け skin';
} else {
    $wgDefaultSkin = 'vector';
}

アップデート

mediawikiのアップデートは割と簡単な手順で済むことが多いので、よくやる手順のメモ。

一つ前のバージョンからのアップデート

パッチファイルが提供されていればパッチの実行により差分適用で更新できる。

  1. パッチのファイルをwikiのルート(通常、LocalSettings.php があるディレクトリ)にコピーする
  2. patch コマンドで適用する。
    patch -p1 --dry-run -i mediawiki-x.xx.x.patch
    という感じでドライラン で一度問題なさそうか確認してから
    patch -p1 -i mediawiki-x.xx.x.patch
    とドライランなしで実行すると良い。
  3. 更新したらバージョン情報を確認してみたりして問題ないか検証する。

別インストールして差し替えでアップデート

  1. 別ディレクトリに新verをインストール。
  2. 新ver に extension と image をコピー。(独自 skin 作ってるならそれも。)
  3. 旧 wiki の Localsetting.php を一旦 extension の読み込みをコメントアウトして新verにコピー。
  4. 動作確認しつつ extension を個別に有効化していく。
  5. 新ver で問題のある extension があったら、編集or代替検討で対処しとく。
  6. DB を旧verのDBに繋げるように Localsetting.phpを編集。(バックアップは当然取っとく。)または、DBをダンプして新verのDBに突っ込む。
  7. メンテナンスの update.php を実行。
  8. 動作確認。
  9. カスタムしたスキンの調整(マージとか)。
  10. 運用が安定したら不要になった旧verの諸々を消す。

この手順だと新旧の切り替えが一瞬で終わりダウンタイムなしで移行できるのと、トラブっても復旧が楽っていうのがある。 DBを接続の切り替えにするか、新VerDBに突っ込むかはアップデートの内容によりけりで判断。

サイトマップ生成

  • wikiの直下に sitemap ディレクトリ作っとく
  • メンテナンスにサイトマップジェネレータあるので実行する。うちだと以下の様な感じ
php maintenance/generateSitemap.php --fspath sitemap --server http://wiki.gz-labs.net  --urlpath http://wiki.gz-labs.net/sitemap