コンテンツにスキップ

MediaWiki

出典: フリー教科書『ウィキブックス(Wikibooks)』

概要

[編集]

MediaWikiは、WikibooksWikipediaで使用されているオープンソースのWikiソフトウェアです。本ハンドブックでは、MediaWikiの導入から運用、カスタマイズまでを解説します。

導入

[編集]

システム要件

[編集]
  • PHP 7.4以上
  • MariaDB 10.3以上またはMySQL 5.7以上
  • 1GB以上のメモリ
  • 500MB以上の空きディスク容量

インストール手順

[編集]
  1. MediaWikiのダウンロード
    wget https://releases.wikimedia.org/mediawiki/1.43/mediawiki-1.43.0.tar.gz
    tar -zxvBpf mediawiki-1.43.0.tar.gz
    
  2. Webサーバーの設定
    <VirtualHost *:80>
        DocumentRoot /var/www/mediawiki
        <Directory /var/www/mediawiki>
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    
  3. インストールスクリプトの実行
  • ブラウザで/mw-config/index.phpにアクセス
  • 画面の指示に従って設定を完了

基本設定

[編集]

LocalSettings.phpの主要な設定項目

[編集]
LocalSettings.php
// サイト名の設定
$wgSitename = "My Wiki";

// 言語設定
$wgLanguageCode = "ja";

// タイムゾーン設定
$wgLocaltimezone = "Asia/Tokyo";

// アップロード設定
$wgEnableUploads = true;
$wgUseImageMagick = true;

// キャッシュ設定
$wgMainCacheType = CACHE_MEMCACHED;

ユーザー権限の設定

[編集]
LocalSettings.php
// 管理者グループの権限設定
$wgGroupPermissions['sysop']['deleterevision'] = true;

// 一般ユーザーの権限制限
$wgGroupPermissions['*']['edit'] = false;

ページ管理

[編集]

名前空間の管理

[編集]

標準名前空間:

  • メイン(無名前空間)
  • ユーザー
  • プロジェクト(サイト名が表示される)
  • ファイル
  • MediaWiki
  • テンプレート
  • カテゴリ
  • ヘルプ
カスタム名前空間の追加:
LocalSettings.php
define("NS_CUSTOM", 100);
define("NS_CUSTOM_TALK", 101);
$wgExtraNamespaces[NS_CUSTOM] = "Custom";
$wgExtraNamespaces[NS_CUSTOM_TALK] = "Custom_talk";

ページ保護

[編集]

保護レベル:

  • 全保護:管理者のみ編集可能
  • 半保護:登録ユーザーのみ編集可能
  • 移動保護:ページ名変更の制限

拡張機能

[編集]

主要な拡張機能

[編集]
  1. VisualEditor
    • WYSIWYGエディタの提供
    • インストール:
    wfLoadExtension( 'VisualEditor' );
    $wgDefaultUserOptions['visualeditor-enable'] = 1;
    
  2. Scribunto
  3. WikiEditor
    • 編集インターフェースの改善
    • 構文強調表示

拡張機能の管理

[編集]
// 拡張機能の読み込み
wfLoadExtension( 'ExtensionName' );

// 拡張機能の設定
$wgExtensionNameSettings = [
    'option1' => true,
    'option2' => 'value'
];

テンプレート

[編集]

基本的なテンプレート構文

[編集]
{| class="wikitable"
|+ キャプション
! 構文 !! 説明
|-
| {{Template}} || 基本的な呼び出し。「|」で区切ることで引数に文字列などを挿入可能。
|-
| {{{parameter}}} || パラメータ定義
|-
| {{#if:}} || 条件分岐
|}

テンプレートの例

[編集]
情報ボックス:
{{Infobox
|name = {{{1|}}}
|image = {{{image|}}}
|description = {{{description|}}}
}}

外観のカスタマイズ

[編集]

スキンの設定

[編集]
// デフォルトスキンの設定
$wgDefaultSkin = "vector";

// 利用可能なスキン
$wgSkipSkins = [
    'vector',
    'monobook',
    'modern'
];

CSSのカスタマイズ

[編集]

MediaWiki:Common.css での設定:

/* ページ全体の設定 */
body {
    font-family: "メイリオ", Meiryo, sans-serif;
}

/* 記事本文の設定 */
.mw-body-content {
    font-size: 0.875em;
    line-height: 1.6;
}

メンテナンス

[編集]

データベースバックアップ

[編集]
# XMLダンプの作成
php maintenance/dumpBackup.php > backup.xml

# データベースバックアップ
mysqldump -u wikiuser -p wikidb > wiki_backup.sql

キャッシュの管理

[編集]
// キャッシュの設定
$wgMemCachedServers = [ '127.0.0.1:11211' ];

// キャッシュの無効化(開発時)
$wgCachePages = false;

アップデート手順

[編集]
  1. バックアップの作成
  2. ファイルの更新
  3. update.phpの実行
    php maintenance/update.php
    

セキュリティ

[編集]

基本的なセキュリティ設定

[編集]
// エラー表示の無効化
$wgShowExceptionDetails = false;

// デバッグモードの無効化
$wgDebugLogFile = false;

// アップロードファイルの制限
$wgFileExtensions = [ 'png', 'jpg', 'jpeg', 'gif' ];

スパム対策

[編集]
  1. SpamBlacklist拡張機能の導入
  2. CAPTCHAの設定
  3. 編集フィルタの設定

パフォーマンスチューニング

[編集]

キャッシュの最適化

[編集]
// オブジェクトキャッシュの設定
$wgMainCacheType = CACHE_MEMCACHED;
$wgParserCacheType = CACHE_MEMCACHED;

// ファイルキャッシュの設定
$wgUseFileCache = true;
$wgFileCacheDirectory = "$IP/cache";

データベースの最適化

[編集]
  1. インデックスの最適化
  2. クエリキャッシュの設定
  3. レプリケーションの設定(大規模サイト用)

附録

[編集]

有用なコマンド集

[編集]
# データベース最適化
php maintenance/runJobs.php
php maintenance/rebuildall.php

# キャッシュクリア
php maintenance/cleanupCaches.php

# 検索インデックス再構築
php maintenance/rebuildtextindex.php

トラブルシューティング

[編集]

一般的な問題と解決方法:

  1. アップロード失敗
    • パーミッションの確認
    • PHPの設定確認
  2. パフォーマンス低下
    • キャッシュの確認
    • データベース最適化
  3. 編集競合
    • ロック機構の確認
    • セッション設定の確認

以上がMediaWikiの基本的な設定と運用方法です。さらに詳しい情報はMediaWiki公式ドキュメントを参照してください。

下位階層のページ

[編集]