案内編論文編書籍編雑記編

メディアウィキのローカル設定

メディアウィキをインストールすると、インストール時の初期設定を反映した“LocalSettings.php”が自動的に生成されますが、さらに細かい設定をするには、手動での書き込みが必要です。ここでは、私が有用と判断したローカル設定を列挙し、その設定方法を記載しておきます。

1. 訪問者の権限を制限する

デフォルトでは、誰もがどのページをも編集することができますが、個人サイトにするためには、この機能を制限しなければなりません。メディアウィキのサイトを、ユーザにコメントだけを許すようにするには、ユーザにページ編集権を持たせたまま、トーク以外の全てのネームスペースへのアクセスを禁止します。この設定は、MediaWiki 1.10 以降の場合、以下の追記で可能です。「一般システム学」の部分は自分のプロジェクト名を入れてください。設定結果は、利用者グループの権限というページで確認できます。

$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createtalk'] = false;
$wgGroupPermissions['*']['createpage'] = false;
$wgGroupPermissions['*']['writeapi'] = false;
$wgGroupPermissions['user']['move-subpages'] = false;
$wgGroupPermissions['user']['writeapi'] = false;
$wgGroupPermissions['user']['minoredit'] = false;
$wgGroupPermissions['user']['move'] = false;
$wgGroupPermissions['user']['move-rootuserpages'] = false;
$wgGroupPermissions['user']['upload'] = false;
$wgGroupPermissions['user']['reupload'] = false;
$wgGroupPermissions['user']['reupload-shared'] = false;
$wgGroupPermissions['user']['purge'] = false;

$wgNamespaceProtection = array('editinterface');
$wgNamespaceProtection[NS_一般システム学] = array('editinterface');
$wgNamespaceProtection[NS_File] = array('editinterface');
$wgNamespaceProtection[NS_Template] = array('editinterface');
$wgNamespaceProtection[NS_Category] = array('editinterface');
$wgNamespaceProtection[NS_Help] = array('editinterface');
$wgNamespaceProtection[NS_Talk] = array('user');
$wgNamespaceProtection[NS_User] = array('user');
$wgNamespaceProtection[NS_User_talk] = array('user');
$wgNamespaceProtection[NS_一般システム学‐議論] = array('user');
$wgNamespaceProtection[NS_File_talk] = array('user');
$wgNamespaceProtection[NS_Template_talk] = array('user');
$wgNamespaceProtection[NS_Category_talk] = array('user');
$wgNamespaceProtection[NS_Help_talk] = array('user');

参考:デフォルトの GroupPermissions の設定

ネームスペース・プロテクションの権限者、'editinterface' は、デフォルトではサイトの管理人です。以上のように設定すれば、訪問者は、読んだり、ノートに書き込んだり、アカウントを作ってユーザとなったりすることはできますが、本文記事を新規に作ったり、編集したり、タイトルを変えたり、ファイルをアップロードしたりといったことができなくなります。

ノートでは、他人の書き込みを第三者が勝手に書き換えることができます。これは好ましくないことですが、メディアウィキの仕様ですから、仕方がありません。訪問者のモラルに頼るしかありません。訪問者がノートに書き込むと、IPアドレスが表示されるので、これはいたずら防止に少し役立ちそうです。IPアドレスの表示がいやな人のために、ユーザ登録も可能なようにしておきましょう。ユーザ登録する人がいたずらをする可能性はさらに低いです。

2. キーワードの頭文字に小文字を使う

デフォルトでは、キーワードの頭文字は大文字となり、それはリンクにも反映されます。しかし、

$wgCapitalLinks = false;

を追加すると、頭文字も小文字にすることができます。ただし、サイト製作中にここを変更すると、リンク切れを起こすことがあるので、この設定は慎重にしましょう。なお、タイトルの頭文字を小文字にするだけなら、この設定を変えなくても、“$wgAllowDisplayTitle”がデフォルトで、有効になっているので、例えば、

{{DISPLAYTITLE:iPod}}

というように、マジック・ワードを設定することで、“iPod”のような小文字で始まるタイトルを表示させることが可能です。

3. ファイルのアップロードを有効にする

デフォルトでは、ファイル(特に画像)のアップロードができないので、

$wgEnableUploads = false;

とあるところを、例えば、

$wgEnableUploads = true;
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'ppt', 'pdf', 'doc', 'psd', 'mp3','xls', 'zip','swf', 'doc', 'odt', 'odc', 'odp', 'odg', 'mpp');
$wgUploadPath = "$wgScriptPath/images";
$wgUploadDirectory = "$IP/images";

というように変更します。2番目は、アップロードできるファイル属性ですが、必要ないものは、削除してください。3番目と4番目の指定は、“ScriptPath”と“ArticlePath”を別にしている場合、必要で、さもないとリンク切れを起こしてしまいます。

サムネイル表示に、ImageMagick を使うのであれば、

## If you use ImageMagick (or any other shell command) on a
## Linux server, this will need to be set to the name of an
## available UTF-8 locale
$wgShellLocale = "en_US.utf8";
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";

とします。ファイルを一つのフォルダ内に格納する場合には、

$wgHashedUploadDirectory = false;

とします。この方法には、格納場所がわかりやすいというメリットがありますが、属性が同じであるファイルには、すべて異なる名前をつけなければならないというデメリットもあるので、お好みに合わせて設定してください。

4. 数式を使えるようにする

専用サーバーもしくは、一部のレンタルサーバーで可能です。ここでは、ドリームホスト以外のサーバーにおける一般的なインストール方法を書きます。

LaTeX を用いた数式表記を有効にするには、まず、ローカル設定で、

$wgUseTeX = false;

とあるところを

$wgUseTeX = true;
$wgTexvc = './math/texvc';
$wgMathPath = "{$wgUploadPath}/math";
$wgMathDirectory = "{$wgUploadDirectory}/math";
$wgTmpDirectory = "{$wgUploadDirectory}/tmp";

に変更します。サーバーのOSがウィンドウズの場合には、

$wgTexvc = './math/texvc.exe';

とします。次に、“images”フォルダ内に以下のディレクトリを作り、属性を“755”にします。

/images/math
/images/tmp

ここから先の作業に関しては、Manual:Enable TeX をお読みください。簡単に要点だけ紹介すると、まず、以下のファイルを用意します。

  1. texvc:サーバーが Linux ならば、texvc Linux-x86 source + binary をダウンロードし、これを“math”フォルダに格納します。Windows サーバーの場合、ここに書いてあるハッキング方法を参考にしてください。
  2. Objective Caml:コンパイルに必要なので、ここから“Objective Caml”をダウンロードし、これを“math”フォルダに格納します。
  3. GNU make:Linux なら標準装備されている。Windows の場合、MinGW あるいは Cygwin を使います。
  4. LaTeX, dvips, ImageMagick, Ghostscript:ラスター化する(画面表示できるドットパターンに変換する)ために必要。

また、数式の入力方法に関しては、Displaying a formula をご覧ください。

5. 時刻表示をローカルの標準に合わせる

以下を追加。日本語のサイトの場合、

$wgLocaltimezone = "Asia/Tokyo";
$oldtz = getenv("TZ");
putenv("TZ=$wgLocaltimezone");
$wgLocalTZoffset = date("Z") / 60;
putenv("TZ=$oldtz");

を追記します。分単位まで表示させるなら“$wgLocalTZoffset = date("Z") / 3600;”とします。英語のサイトの場合、ニューヨークが英米の中央近くにあるので、ニューヨークに合わせて、

$wgLocaltimezone = "America/New_York";
$oldtz = getenv("TZ");
putenv("TZ=$wgLocaltimezone");
$wgLocalTZoffset = date("Z") / 60;
putenv("TZ=$oldtz");

でよいでしょう。ドイツ語のサイトの場合、夏時間に対応させるには、

$wgLocaltimezone="Europe/Berlin";
$oldtz = getenv("TZ");
putenv("TZ=$wgLocaltimezone");
$wgLocalTZoffset = date("Z") / 60 + date("I") * 60;
putenv("TZ=$oldtz");

と追記して、フランス語のサイトでも同様に、以下を追記します。

$wgLocaltimezone="Europe/Paris";
$oldtz = getenv("TZ");
putenv("TZ=$wgLocaltimezone");
$wgLocalTZoffset = date("Z") / 60 + date("I") * 60;
putenv("TZ=$oldtz");

6. スキンを変える

既存のスキンに満足しない場合、サードパーティが作ったスキンを導入するとよいでしょう。私は、Paul Gu 氏提供の Drop Down Menu Series を採用しています[実例]。このスキンにする場合、ファイルをダウンロードして、“skins”フォルダに格納し、“LocalSettings.php”で

$wgDefaultSkin = 'monobook';

とあるところを

$wgDefaultSkin = 'gumaxdd';

に変更します。スキンのカスタマイズに関しては、リンク先のページをご覧ください。

7. 拡張機能を有効にする

拡張機能(extensions)に関しては、「メディアウィキの拡張機能」を参照してください。ほとんどの拡張機能は、以下の追記で有効になります。

require_once("extensions/拡張機能パス");

[投稿者:永井俊哉]
ブログ内移動
カテゴリー内移動
お知らせ

このページでのコメントの受付は終了しました。本ページに関して、御意見、御質問、御批判をお持ちの方で、私に回答を求める方は、システム論フォーラムに投稿してください。

Sponsored Links
Books