MediaWiki
表示
概要
[編集]MediaWikiは、WikibooksやWikipediaで使用されているオープンソースのWikiソフトウェアです。本ハンドブックでは、MediaWikiの導入から運用、カスタマイズまでを解説します。
導入
[編集]システム要件
[編集]- PHP 7.4以上
- MariaDB 10.3以上またはMySQL 5.7以上
- 1GB以上のメモリ
- 500MB以上の空きディスク容量
インストール手順
[編集]- MediaWikiのダウンロード
wget https://releases.wikimedia.org/mediawiki/1.43/mediawiki-1.43.0.tar.gz tar -zxvBpf mediawiki-1.43.0.tar.gz
- Webサーバーの設定
<VirtualHost *:80> DocumentRoot /var/www/mediawiki <Directory /var/www/mediawiki> AllowOverride All Require all granted </Directory> </VirtualHost>
- インストールスクリプトの実行
- ブラウザで
/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";
ページ保護
[編集]保護レベル:
- 全保護:管理者のみ編集可能
- 半保護:登録ユーザーのみ編集可能
- 移動保護:ページ名変更の制限
拡張機能
[編集]主要な拡張機能
[編集]- VisualEditor
- WYSIWYGエディタの提供
- インストール:
wfLoadExtension( 'VisualEditor' ); $wgDefaultUserOptions['visualeditor-enable'] = 1;
- Scribunto
- Luaスクリプティングのサポート
- テンプレート機能の拡張
- 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;
アップデート手順
[編集]- バックアップの作成
- ファイルの更新
- update.phpの実行
php maintenance/update.php
セキュリティ
[編集]基本的なセキュリティ設定
[編集]// エラー表示の無効化 $wgShowExceptionDetails = false; // デバッグモードの無効化 $wgDebugLogFile = false; // アップロードファイルの制限 $wgFileExtensions = [ 'png', 'jpg', 'jpeg', 'gif' ];
スパム対策
[編集]- SpamBlacklist拡張機能の導入
- CAPTCHAの設定
- 編集フィルタの設定
パフォーマンスチューニング
[編集]キャッシュの最適化
[編集]// オブジェクトキャッシュの設定 $wgMainCacheType = CACHE_MEMCACHED; $wgParserCacheType = CACHE_MEMCACHED; // ファイルキャッシュの設定 $wgUseFileCache = true; $wgFileCacheDirectory = "$IP/cache";
データベースの最適化
[編集]- インデックスの最適化
- クエリキャッシュの設定
- レプリケーションの設定(大規模サイト用)
附録
[編集]有用なコマンド集
[編集]# データベース最適化 php maintenance/runJobs.php php maintenance/rebuildall.php # キャッシュクリア php maintenance/cleanupCaches.php # 検索インデックス再構築 php maintenance/rebuildtextindex.php
トラブルシューティング
[編集]一般的な問題と解決方法:
- アップロード失敗
- パーミッションの確認
- PHPの設定確認
- パフォーマンス低下
- キャッシュの確認
- データベース最適化
- 編集競合
- ロック機構の確認
- セッション設定の確認
以上がMediaWikiの基本的な設定と運用方法です。さらに詳しい情報はMediaWiki公式ドキュメントを参照してください。