MediaWikiとは|特徴・機能・導入方法をわかりやすく解説
MediaWikiとは何かを初心者向けに解説。特徴・機能、スケーラビリティや編集履歴管理、拡張性、導入手順まで実例でわかりやすく紹介。
MediaWikiはウィキメディアプロジェクトのすべてを実行するソフトウェアの名前です。2003年にリリースされ、自由なサーバベースのソフトウェアとして広く使われています。MediaWikiはGNU一般公衆利用許諾契約書(GPL)に基づいてライセンスされており、ソースコードとコンテンツをGPLでライセンスされています。これは自由なコンテンツ、つまりオープンソースであることを意味し、誰でもソフトウェアの利用・改変・再配布が可能です。
概要と特徴
MediaWikiは大量のトラフィックを処理するように設計された、機能豊富でスケーラブルなウィキ実装です。主な特徴は次のとおりです。
- PHPで実装され、データは主にMySQLやMariaDB、PostgreSQL、SQLiteなどのリレーショナルデータベースに格納されます。
- ページはMediaWiki独自のマークアップであるWikitext形式を使用するため、XHTMLやCSSの知識がなくても編集できます。VisualEditorなどの拡張により、ビジュアルな編集も可能です。
- 履歴管理と差分:編集履歴をすべて保持し、以前のバージョンへのロールバックや差分表示が簡単にできます。
- ファイル管理:画像やマルチメディアをファイルシステムに保存して管理できます(外部ストレージ連携も可能)。
- 拡張性:多くの拡張(Extensions)やスキン(Skins)で機能を追加・見た目を変更できます。
- キャッシュとスケーラビリティ:大規模なWiki向けにキャッシングをサポートし、Squidなどのプロキシと組み合わせて高速化できます。MemcachedやRedis、OPcacheなどとも併用されます。
主な機能の詳細
- ユーザー管理と権限:登録ユーザー、グループ、権限のきめ細かい設定が可能。匿名編集の制御、ユーザーのブロック、権限分離が行えます。
- 名前空間とテンプレート:ドメイン構造を整理する名前空間、再利用可能なテンプレート機能により一貫したページ生成ができます。
- カテゴリとナビゲーション:カテゴリ分類、パンくず、ナビゲーションメニューでコンテンツの整理が容易です。
- 拡張機能:VisualEditor、ParserFunctions、Cite、FlaggedRevs(承認ワークフロー)、Semantic MediaWiki(セマンティック機能)など多数。
- APIと外部連携:Action APIやREST APIで外部システムと連携可能。OAuthやLDAP認証、SAMLなどの認証連携も対応できます。
- 保守用スクリプト:データベースアップデート(update.php)、キャッシュ再構築、バックアップスクリプトなど運用に必要なコマンドラインツールが用意されています。
導入前の要件と推奨環境
- Webサーバー:Apache、nginxなど(FastCGI・PHP-FPM推奨)。
- PHP:MediaWikiのバージョンに応じたサポートされているPHPのバージョンが必要です(導入前に公式ドキュメントで確認してください)。Opcacheの有効化を推奨。
- データベース:MySQL / MariaDB / PostgreSQL / SQLiteのいずれか。大規模環境ではMySQL/MariaDBがよく使われます。
- ストレージ:アップロードファイルを保存する十分なディスク容量。オブジェクトストレージ(S3互換など)との連携も可能。
- メモリ・キャッシュ:Memcached、Redis等の導入でレスポンス向上が見込めます。
基本的な導入手順(要点)
- 公式パッケージをダウンロードして展開、またはComposerでインストール。
- WebサーバーとPHP、データベースの環境を整備。
- ブラウザでインストーラー(mw-config)を実行し、データベース情報や管理アカウントを設定。
- 生成されるLocalSettings.phpをWebルートに配置してサイトを有効化。
- 必要な拡張やスキンを導入・設定。ローカルのニーズに合わせて権限や名前空間を調整。
- 本番運用前にバックアップとアップデート手順、監視体制を整備することを推奨します。
運用・パフォーマンス最適化
- キャッシュ(HTTPキャッシュ、Memcached/Redis、OPcache)を組み合わせてレスポンスを改善。
- 画像や静的ファイルはCDNに配信すると負荷が大幅に下がります。
- データベースの最適化(インデックス、クエリ監視)、水平分割やリードレプリカの導入でスケール可能。
- 定期的に不要な新旧ファイルのクリーンアップ、ログのローテーション、DBバックアップを実施。
セキュリティとデータ保護
- 定期的なアップデート(MediaWiki本体と拡張)で既知の脆弱性に対応。
- 管理者権限の最小化、2要素認証や外部認証の導入検討。
- キャプチャやAbuseFilter拡張でスパムや自動化攻撃を抑制。
- データベースとファイルの定期バックアップ、および復旧手順の検証。
Wikimediaでの利用
すべてのウィキメディアプロジェクトはMediaWikiのバージョン1.35.0-wmf.31 (c33756d)で動作します。大規模な実運用環境向けにカスタムパッチや専用の拡張が適用されている場合があり、ウィキメディア財団は独自のデプロイ・運用体制を持ちます。
導入時のチェックリスト(簡易)
- 必要なソフトウェア(PHP、DB、Webサーバー)が揃っているか。
- ファイル権限とセキュリティ設定が適切か。
- バックアップとリストア手順を確認したか。
- 主要な拡張(編集支援、認証、画像処理など)を選定したか。
- パフォーマンス要件に応じてキャッシュやCDNを用意したか。
サポートと学習リソース
公式マニュアル、コミュニティフォーラム、各種拡張のドキュメントが豊富にあります。導入・運用で問題が発生した際は、ログ確認、公式のトラブルシューティングページ、またはコミュニティでの相談が有効です。
まとめると、MediaWikiはオープンソースで柔軟性が高く、個人の小規模な知識ベースからウィキペディアのような大規模サイトまで幅広く対応可能です。導入前に要件を整理し、拡張やキャッシュの設計、バックアップ・セキュリティの方針を固めることで、安定した運用が実現できます。
使用方法
MediaWikiは柔軟性があるので、他のタイプのwikiソフトウェアではなく、情報を提供してほしいと考えている多くのウェブサイトがMediaWikiを利用しています。Wikiaによって運営されているサイトもその一つです。
コンテンツ管理システムとしてMediaWikiを利用しているサイトもあります。
拡張機能
MediaWikiでは、システム管理者はMediaWikiのメインサイトで提供されている拡張機能をインストールすることができます。いくつかはMediaWikiの開発者から提供されたものですが、他のものは世界中のプログラマーから提供されたものです。
ほとんどの拡張機能はウィキメディアのSubversionリポジトリからダウンロードできます。しかし、他の人が自分でホストしている拡張機能もあります。
MediaWikiの開発に伴い、いくつかの拡張機能がメインソフトウェアに追加されました。例えば、Makesysop拡張機能はユーザーを管理者や官僚に昇格させるための拡張機能です。
平成25年10月4日時点で2124件の増築がありました。
名前空間
MediaWikiのデフォルトのインストールでは、ソフトウェアは17の名前空間(実際には18の名前空間を持っていますが、1つは名前空間を持っていません)を持っています。
- 記事(このページのような名前空間はありません
- Talk - メイン名前空間のトークページ
- User - ユーザーページ、Special:MyPageからも利用できます。
- ユーザートーク - ユーザートークページ。
- プロジェクト - プロジェクトの名前空間(ウィキペディアのようなもの)
- プロジェクトトーク - プロジェクトページのトークページ
- ファイル - 画像や音声のページ
- ファイルの話 - メディアの話
- MediaWiki - ソフトウェアのページは、管理者からのみ変更可能です。
- MediaWikiトーク - ソフトウェアページについてのトーク、誰もがこの名前空間に書くことができます。
- テンプレート - テンプレート用
- テンプレートの話 - テンプレートの話
- ヘルプ - ヘルプページ(Help:Contentsのようなもの)
- ヘルプトーク - ヘルプページについて話す
- カテゴリ - ページの分類
- カテゴリトーク - カテゴリについてのトーク
- 特別 - MediaWikiソフトウェアの特別ページ
- Media - ファイルに直接リンクする名前空間
追加の名前空間はMediaWikiのインストールから設定ファイルを使って追加することができます。
バグ
MediaWikiは複雑なソフトウェアなので、ソフトウェアには常にバグがあります。そのため、ウィキメディアはバグを発見した人がMediaWikiの開発者に報告できるように、Bugzillaというウェブサイトを作成しました。
MediaWikiの拡張機能の中にはWikimedia Bugzillaを使うものもあれば、拡張ページのトークページを使うだけのものもあります。
スキン
ユーザーはMediaWikiを異なる外観にカスタマイズすることができます。利用者はいくつかの"スキン"のうちの一つを使うことができます。異なる時代には異なるスキンがデフォルトになっています。例えば、Wikipediaはバージョン1.16で新しいVectorスキンを採用する前にMonobookを使用していました。
ウィキメディアが行った調査では、より多くの人がベクタースキンを好むことがわかりました。
英語版ウィキペディアのベクタースキン。
詳細情報
ソフトの詳細はこちら
- 主なMediaWikiサイト
- メタウィキのMediaWiki
- メタウィキのMediaWikiユーザーガイド
- PHP スクリプト FAQ
- PHPスクリプト自動ウィキ化(旧機能
- MediaWikiハッカーになる方法(インストールのアドバイス
質問と回答
Q: MediaWikiとは何ですか?
A: MediaWikiはフリーでオープンソースのソフトウェアであり、すべてのウィキメディア・プロジェクトやその他多くのプロジェクトを動かしています。
Q: MediaWikiはいつリリースされたのですか?
A: MediaWikiは2003年にリリースされました。
Q: MediaWikiはどのライセンスで提供されていますか?
A: MediaWikiはGNU General Public License (GPL)のもとでライセンスされており、フリーコンテンツまたはオープンソースであることを意味します。
Q: MediaWikiはどのようなWebサイト向けに設計されていますか?
A: MediaWikiは、1日に何百万ものヒットを受けるウェブサイトのために、大規模なウェブサーバーファームで実行されるように設計されています。
Q: MediaWikiはどのような形式のページを使用しますか?
A: ページはMediaWikiのWikitext形式を使用しており、XHTMLやCSSの知識がなくても簡単に編集することが可能です。
Q: ユーザーがMediaWikiのページに編集を加えた場合、どうなりますか?
A: MediaWikiは、編集したページの以前のバージョンを削除することなくデータベースに書き込みますので、荒らしやスパムの場合に簡単に元に戻すことができます。
Q: MediaWikiは画像やマルチメディアファイルを管理できますか?
A: はい、MediaWikiはファイルシステムに保存されている画像やマルチメディアのファイルを管理することができます。
百科事典を検索する