「MediaWikiの設定 - その他」の版間の差分
| (同じ利用者による、間の1版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
MediaWikiを運用していく中では、LocalSettings.phpによる基本設定やエクステンションの導入だけでなく、サーバ環境やセキュリティに関連する様々な設定・操作が必要になる場合がある。<br> | |||
<br> | |||
具体的には、以下に示すような設定がある。<br> | |||
* パフォーマンスやコンテンツの表示に問題が発生した場合に有効なキャッシュの管理 | |||
* 不要になった削除ページの履歴をデータベースから完全に消去 | |||
* .htaccessを使用したBasic認証により特定のディレクトリへのアクセスを制限 | |||
<br><br> | <br><br> | ||
| 108行目: | 114行目: | ||
<br> | <br> | ||
データベースの設定によっては、リビジョンを削除した後、SQLコマンド<code>OPTIMIZE TABLE text, archive</code>を実行してアーカイブすることもできる。<br> | データベースの設定によっては、リビジョンを削除した後、SQLコマンド<code>OPTIMIZE TABLE text, archive</code>を実行してアーカイブすることもできる。<br> | ||
<br><br> | |||
== .htaccessを使用したBasic認証 == | |||
バリューサーバにおいて、.htaccessを使用したBasic認証により、特定のディレクトリへのアクセスを制限することができる。<br> | |||
<br> | |||
Basic認証では、<u>.htaccess</u> ファイル (アクセス制御ルール) と <u>.htpasswd</u> ファイル (ユーザ名と暗号化されたパスワード) の2つのファイルが必要となる。<br> | |||
<u>.htpasswd</u> ファイルは、セキュリティ上、Webからアクセスできない場所に配置する。<br> | |||
<br> | |||
<u>※注意</u><br> | |||
* <u>LiteSpeedはApache互換の.htaccessをサポートしているため、以下の設定がそのまま動作する。</u> | |||
* <u>ただし、.htaccessを変更した直後はキャッシュの関係で反映が遅れる場合がある。<br>うまく動作しない場合は、数分待ってから再度アクセスすること。</u> | |||
<br> | |||
==== サーバ上の絶対パスの確認 ==== | |||
<code>AuthUserFile</code> ディレクティブに指定するパスが不明な場合は、public_htmlディレクトリ内に一時的に以下のPHPファイルを配置して確認する。<br> | |||
<br> | |||
<syntaxhighlight lang="php"> | |||
<?php | |||
// このファイル自身の絶対パスを表示する | |||
echo __FILE__; | |||
?> | |||
</syntaxhighlight> | |||
<br> | |||
例えば、"/virtual/<アカウント名>/public_html/test.php" と表示された場合、ドキュメントルートの親ディレクトリは "/virtual/<アカウント名>/" となる。<br> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>確認後は、このPHPファイルを必ず削除すること。</u><br> | |||
<br> | |||
==== .htpasswdファイルの作成 ==== | |||
パスワードファイルを公開ディレクトリより上の階層に配置する。<br> | |||
<br> | |||
バリューサーバのドキュメントルートは <u>/virtual/アカウント名/public_html/</u> であるため、<br> | |||
<u>.htpasswd</u> ファイルは、<u>/virtual/アカウント名/ (バリューサーバの場合)</u> の直下に配置する。<br> | |||
<br> | |||
パスワードのハッシュを生成する。(Winodws環境の場合はWSL、Linux環境等で実行する)<br> | |||
htpasswd -cb .htpasswd <ユーザ名> <パスワード> | |||
<br> | |||
生成される <u>.htpasswd</u> ファイルの内容は以下のようになる。<br> | |||
myuser:$apr1$xxxxx$xxxxxxxxxxxxxxxxxxxxxxxx | |||
<br> | |||
このファイルをFTPまたはファイルマネージャを使用して、<u>/virtual/<アカウント名>/.htpasswd</u>としてアップロードする。<br> | |||
<br> | |||
==== .htaccessファイルの作成 ==== | |||
保護したいディレクトリ (例: <u>/virtual/<アカウント名>/public_html/a/</u>) に、以下の内容で <u>.htaccess</u> ファイルを作成・配置する。<br> | |||
<br> | |||
<syntaxhighlight lang="apache"> | |||
# Basic認証の設定 | |||
AuthType Basic | |||
AuthName "Restricted Area" | |||
AuthUserFile /virtual/<アカウント名>/.htpasswd | |||
Require valid-user | |||
</syntaxhighlight> | |||
<br> | |||
各ディレクティブの説明を以下に示す。<br> | |||
* <code>AuthType Basic</code> | |||
*: 認証方式としてBasic認証を使用することを宣言する。 | |||
* <code>AuthName</code> | |||
*: ブラウザにログインダイアログが表示される時の領域名 (メッセージ) を指定する。任意の文字列でよい。 | |||
* <code>AuthUserFile</code> | |||
*: <u>.htpasswd</u> ファイルのサーバ上の絶対パスを指定する。 | |||
*: "アカウント名"の部分は自身のバリューサーバのアカウント名に置き換える。 | |||
* <code>Require valid-user</code> | |||
*: <u>.htpasswd</u> ファイルに登録されている全ユーザにアクセスを許可する。 | |||
<br> | |||
==== 動作確認 ==== | |||
Webブラウザで対象のURLにアクセスする。<br> | |||
ユーザ名とパスワードの入力を求めるダイアログが表示されることを確認する。<br> | |||
<br> | |||
* 正しい認証情報を入力した場合は、ページが表示される。 | |||
* キャンセルまたは誤った入力の場合は、<u>401 Unauthorized</u> エラーが表示される。 | |||
<br><br> | <br><br> | ||
2026年2月8日 (日) 04:09時点における最新版
概要
MediaWikiを運用していく中では、LocalSettings.phpによる基本設定やエクステンションの導入だけでなく、サーバ環境やセキュリティに関連する様々な設定・操作が必要になる場合がある。
具体的には、以下に示すような設定がある。
- パフォーマンスやコンテンツの表示に問題が発生した場合に有効なキャッシュの管理
- 不要になった削除ページの履歴をデータベースから完全に消去
- .htaccessを使用したBasic認証により特定のディレクトリへのアクセスを制限
キャッシュの削除
MediaWikiのキャッシュを削除するには、いくつかの方法がある。
推奨される手順を以下に示す。
- まず、Webインターフェースからの方法を試す。
- 解決しない場合は、メンテナンススクリプトを使用する。
- より徹底的な削除が必要な場合は、複数の方法を組み合わせる。
※注意
- キャッシュクリアは一時的にサイトのパフォーマンスに影響を与える可能性がある。
- 大規模なコンテンツの場合、キャッシュの再構築に時間が掛かることがある。
- 本番環境での作業の場合は、メンテナンス時間中に実行することを推奨する。
Webインターフェースから削除 (管理者のみ)
- Special:サイト管理 (Special:Version) ページに移動する。
- ページ下部にある[キャッシュ]セクションにおいて、[キャッシュを空にする]を選択する。
maintenance scriptの使用
MediaWikiのインストールディレクトリに移動する。
cd <MediaWikiのインストールディレクトリ>
キャッシュ全体を削除する。
# MediaWiki 1.40以降の場合 php maintenance/run.php rebuildall または phpcli maintenance/run.php rebuildall php maintenance/run.php update または phpcli maintenance/run.php update # MediaWiki 1.39以前の場合 php maintenance/rebuildall.php または phpcli maintenance/rebuildall.php php maintenance/update.php または phpcli maintenance/update.php
個別のキャッシュを削除する場合
MediaWikiのインストールディレクトリに移動する。
cd <MediaWikiのインストールディレクトリ>
# ローカライゼーションキャッシュの再構築 php maintenance/rebuildLocalisationCache.php または phpcli maintenance/rebuildLocalisationCache.php # リソースローダーキャッシュの削除 php maintenance/refreshLinks.php または phpcli maintenance/refreshLinks.php
ファイルシステムから直接削除
MediaWikiのインストールディレクトリに移動する。
cd <MediaWikiのインストールディレクトリ>
キャッシュディレクトリの内容を削除する。
rm -rf ./cache/*
LocalSettings.phpで一時的にキャッシュを無効化
vi LocalSettings.php
// LocalSettings.phpファイル
$wgCacheDirectory = false;
$wgEnableParserCache = false;
削除ページの履歴の完全な削除
これは、復元不可能になるため注意が必要である。
全ての削除ページの履歴を完全に削除する場合は、まず、まず削除される件数を確認する。
# MediaWiki 1.40以降の場合 php maintenance/run.php deleteArchivedRevisions または phpcli maintenance/run.php deleteArchivedRevisions # MediaWiki 1.39以前の場合 php maintenance/deleteArchivedRevisions.php
削除を実行する。
これにより、削除されたリビジョンが保存されているarchiveテーブルが消去されて、削除されたページのテキストも削除される。
# MediaWiki 1.40以降の場合 php maintenance/run.php deleteArchivedRevisions --delete または phpcli maintenance/run.php deleteArchivedRevisions --delete # MediaWiki 1.39以前の場合 php maintenance/deleteArchivedRevisions.php --delete または phpcli maintenance/deleteArchivedRevisions.php --delete
次に、参照されていないテキストデータも削除するため、テキストデータをクリーンアップする。
# MediaWiki 1.40以降の場合 php maintenance/run.php purgeOldText --purge # MediaWiki 1.39以前の場合 php maintenance/purgeOldText.php --purge または phpcli maintenance/purgeOldText.php --purge
削除記録を消去する。
- MariaDB または MySQLにログインする。
mysql -u mochiu_wiki -p
- MediaWikiが使用しているデータベースを選択する。
use <データベース名>;
- 削除記録を消去する。
-- 全ての削除記録を削除する場合 DELETE FROM logging WHERE log_type = 'delete'; -- 特定の期間の削除記録を削除する場合 DELETE FROM logging WHERE log_type = 'delete' AND log_timestamp BETWEEN '20240101000000' AND '20241231235959'; -- 特定のユーザによる削除記録を削除する場合 DELETE FROM logging WHERE log_type = 'delete' AND log_user = ユーザーID;
データベースの設定によっては、リビジョンを削除した後、SQLコマンドOPTIMIZE TABLE text, archiveを実行してアーカイブすることもできる。
.htaccessを使用したBasic認証
バリューサーバにおいて、.htaccessを使用したBasic認証により、特定のディレクトリへのアクセスを制限することができる。
Basic認証では、.htaccess ファイル (アクセス制御ルール) と .htpasswd ファイル (ユーザ名と暗号化されたパスワード) の2つのファイルが必要となる。
.htpasswd ファイルは、セキュリティ上、Webからアクセスできない場所に配置する。
※注意
- LiteSpeedはApache互換の.htaccessをサポートしているため、以下の設定がそのまま動作する。
- ただし、.htaccessを変更した直後はキャッシュの関係で反映が遅れる場合がある。
うまく動作しない場合は、数分待ってから再度アクセスすること。
サーバ上の絶対パスの確認
AuthUserFile ディレクティブに指定するパスが不明な場合は、public_htmlディレクトリ内に一時的に以下のPHPファイルを配置して確認する。
<?php
// このファイル自身の絶対パスを表示する
echo __FILE__;
?>
例えば、"/virtual/<アカウント名>/public_html/test.php" と表示された場合、ドキュメントルートの親ディレクトリは "/virtual/<アカウント名>/" となる。
※注意
確認後は、このPHPファイルを必ず削除すること。
.htpasswdファイルの作成
パスワードファイルを公開ディレクトリより上の階層に配置する。
バリューサーバのドキュメントルートは /virtual/アカウント名/public_html/ であるため、
.htpasswd ファイルは、/virtual/アカウント名/ (バリューサーバの場合) の直下に配置する。
パスワードのハッシュを生成する。(Winodws環境の場合はWSL、Linux環境等で実行する)
htpasswd -cb .htpasswd <ユーザ名> <パスワード>
生成される .htpasswd ファイルの内容は以下のようになる。
myuser:$apr1$xxxxx$xxxxxxxxxxxxxxxxxxxxxxxx
このファイルをFTPまたはファイルマネージャを使用して、/virtual/<アカウント名>/.htpasswdとしてアップロードする。
.htaccessファイルの作成
保護したいディレクトリ (例: /virtual/<アカウント名>/public_html/a/) に、以下の内容で .htaccess ファイルを作成・配置する。
# Basic認証の設定
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /virtual/<アカウント名>/.htpasswd
Require valid-user
各ディレクティブの説明を以下に示す。
AuthType Basic- 認証方式としてBasic認証を使用することを宣言する。
AuthName- ブラウザにログインダイアログが表示される時の領域名 (メッセージ) を指定する。任意の文字列でよい。
AuthUserFile- .htpasswd ファイルのサーバ上の絶対パスを指定する。
- "アカウント名"の部分は自身のバリューサーバのアカウント名に置き換える。
Require valid-user- .htpasswd ファイルに登録されている全ユーザにアクセスを許可する。
動作確認
Webブラウザで対象のURLにアクセスする。
ユーザ名とパスワードの入力を求めるダイアログが表示されることを確認する。
- 正しい認証情報を入力した場合は、ページが表示される。
- キャンセルまたは誤った入力の場合は、401 Unauthorized エラーが表示される。