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はオープンソースで柔軟性が高く、個人の小規模な知識ベースからウィキペディアのような大規模サイトまで幅広く対応可能です。導入前に要件を整理し、拡張やキャッシュの設計、バックアップ・セキュリティの方針を固めることで、安定した運用が実現できます。

