MediaWiki

提供: きまぐれ手記
移動先: 案内検索

この「きまぐれ手記」を動かしている MediaWiki に関するメモ書き。

「きまぐれ手記」を動かしているソフトウェア(抜粋)

その他(問い合わせフォーム、バナー自動表示など)は自作。

MediaWiki

言わずと知れたフリーの巨大百科事典 Wikipedia を運用するために開発された、Wikiシステム。最近の言い方をすればCMSの一種。PHPで書かれており、GPLで配布されているオープンソースプロジェクト。

Mosaic の頃から Webサイトを運用していた筆者にとり、慣れたHTML直書きの方が楽で、最近流行りのCMSを使うのは苦痛でしかないんだが、そうは言ってもWebサイトの共同運営や、これまた最近流行りのSNS連携を考えると、CMS利用に移行する方が楽かもしれないと思い、試行運営することにした。

(SNSが流行る前、blogが流行っていた頃は、trackbackなどを部分的に独自実装していたんだけどね…最近そんな時間も無ければ、SNSがどんどん出てきて対応しきれない面もあって。)

その際にいくつかのCMSを検討したが、WordPress は某所で運用していて面倒でしかなかったこと、以前Wikipedia編集に参加していた頃に文法を習得していたこと、またExtensionなど試してみたいこともあって、今回は MediaWiki にて試行を始めた。

MediaWiki 1.28

1.27.x を飛ばして 1.28.x を導入。

MediaWiki 1.26

1.25.x を飛ばして 1.26.x を導入したため、1.25.x での変更点も含む。

MediaWiki 1.24

2014年12月 3日より、1.24.0 の運用開始。

  • スタイルシートが変わったのか、{{Special:ページ一覧}} の各項目の上に線が出るようになっていた。
  • 今回から iconv が必須になっている。1.23 になった時に Extensions:TweetANew が不具合を起こしたが、今回またマルチバイト関数の扱いが変わったとすると、再度確認が必要かもしれない(まだ試していない)。--2014年12月5日 (金) 23:22 (JST)
  • jQuery 1.11.1 が標準で組み込まれるようになった。これに伴い Extension:FlickrShow で jQuery を標準で組み込まないようにする。
  • Extension:NewArticleTemplate の旧バージョン (1.11.0) を使っていたら不具合を起こし、新規ページ編集ができなくなった。最新 (1.24.0) に更新して解消。
% cd /path/to/extensions/NewArticleTemplate
% fetch https://raw.githubusercontent.com/mathiasertl/NewArticleTemplates/master/NewArticleTemplate.php

MediaWiki 1.23

2014年 6月15日より、1.23.0 に切り替え、12月 3日まで運用していた。

MediaWiki 1.22

現在のMediaWiki版「きまぐれ手記」が稼働した2013年12月時点の最新版 1.22.0 より、1.22.7 まで運用。

  • 参照元skinで使われていた 960 grid system を外し、本文を常に90%幅で表示するようにした。ブラウザを最大化した時に無駄な余白が出なくなってすっきり。右端のリンク類を見たい場合は横スクロールしてくださいまし。--2014年1月15日 (水) 20:43 (JST)
  • 新着/更新情報が twitter に自動ついーとされるように、Extension:TweetANew を設定。 --2014年1月13日 (月) 04:05 (JST)

Extensions

Skin

当初使わせていただいていた GoMediaWikiSkin のデザインを基本に、960 grid system の除去、twitter埋め込みタイムラインやバナーの追加などを行いながら試行錯誤していた。 改造しながら騙し騙し使い続けていたが、1.28.x 導入時に全く動かなくなってしまったため手放した。

1.28.x 導入後は、Tweeki を(今のところ無改造で)使わせていただいている。フロントエンドTwitter Bootstrap を利用しており、図らずも時代の流れに追いついた(笑)。 見た目がすっきりしたのは良いが、これに伴いバナーやリンクアイコンを置く場所が無くなった(いずれ置き直すかも)。

運用めも

バックアップ

詳しくは Manual:Backing up a wiki を参照。

(MySQLで運用している場合)

LocalSettings.php に定義しているデータベース関連パラメータを控えておく。

% mysqldump --hex-blob -Q -h $wgDBserver -u $wgDBuser -p $wgDBname -c > mediawiki_database_backup.sql
Enter password: $wgDBpassword
% php /path/to/mediawiki/maintenance/dumpBackup.php --full > mediawiki_database_dump.xml
% tar czf wiki_backup.tgz /path/to/mediawiki mediawiki_database_backup.sql mediawiki_database_dump.xml
% rm mediawiki_database_backup.sql mediawiki_database_dump.xml

wiki_backup.tgz(実際のファイル名にはwiki名や日付等を入れる方が良い)を保存しておく。

セキュリティアップデート

mediawiki-announce メーリングリストを購読(無料)しておくと、セキュリティアップデートが公開される際にお知らせ(英語)が届く。

% cd /path/to/mediawiki
% mkdir patch
% cd patch
% fetch http://releases.wikimedia.org/mediawiki/1.22/mediawiki-1.22.7.patch.gz http://download.wikimedia.org/mediawiki/1.22/mediawiki-i18n-1.22.7.patch.gz
mediawiki-1.22.7.patch.gz                     100% of 3237  B   12 MBps
mediawiki-i18n-1.22.7.patch.gz                100% of  573  B 9168 kBps
% cd ..
% gunzip -ck patch/mediawiki-1.22.7.patch.gz | patch -p1 >& patch/mediawiki-1.22.7.patch.log
% gunzip -ck patch/mediawiki-i18n-1.22.7.patch.gz | patch -p1 >& patch/mediawiki-i18n-1.22.7.patch.log
% cat patch/mediawiki-1.22.7.patch.log
...
% cat patch/mediawiki-i18n-1.22.7.patch.log
...

アップデート

マイナーバージョンが上がる場合は、一旦別のディレクトリに入れ直す方が良い。 詳しくは Manual:Upgrading を参照。

  • 念のためデータベースを#バックアップ
  • 最新の配布ファイルを取得
  • 配布ファイルを展開
  • .htaccess, LocalSettings.php 各ファイルと、images ディレクトリをコピー
  • 標準以外のSkinsを使っている(または作っている)場合はそれをコピー
  • 標準以外のExtensionsを使っている(または作っている)場合はそれをコピー
  • 以前のmediawikiディレクトリの名前を変更(一時的に保存するため)
  • 新しいmediawikiディレクトリの名前を変更(外から見られるようにする)
  • 新しいMediaWikiに含まれているデータベースのアップデート処理を動かす
% php /path/to/mediawiki/maintenance/update.php
  • これで更新完了のはず。試しにブラウザで表示してみる(初回表示時は時間がかかる)。
  • Special:Version ページを見てバージョンを確認。

関連情報