MediaWiki インストール

提供:TuntunkunMediaWiki

移動: 案内, 検索


目次

MediaWikiとは

MediaWikiとは、もともと Wikipediaのために作られました。現在は、非営利法人WikiMedia財団により様々なプロジェクトに利用されています。企業や、研究機関、大学の研究において知識を共有するためのシステムとして利用も進んでいます。MediaWikiを使うと、Wikipediaのように自由に編集・共有が可能なドキュメントが管理できます。

インストール

MediaWikiのインストールをyum 経由と、直接リポジトリからダウンロードしインストールする方法について紹介します。MediaWiki については、http://www.mediawiki.org/wiki/MediaWiki/ja を参照してください。また、最新の SVN リポジトリに関しては、http://www.mediawiki.org/wiki/Download_from_SVN/ja を参照してください。

yum パッケージマネージャを使ったインストール

sudo yum install mediawiki

通常のインストールと同様にroot権限でインストールを行ってください。

リポジトリからのインストール

mkdir /home/web
sudo chown apahce:apache web
sudo chmod 2770 web
sudo usermod -G apache ${USER}

今回は、インストール先ディレクトリを /home/web とします。SELinux が有効だと、ホームディレクトリへ Apache がアクセスできないので注意しましょう。便宜上、ユーザーを apache グループに所属させていますがこれは以降の手順を簡略化するためです。場合によっては、すでにユーザーが他のグループに所属している可能性もありますのであらかじめ所属しているグループを調べてから追加するようにしましょう。グループの変更をしても、再度ログインするまでは有効になりません。したがって、上記手順が済んだら一度ログインしなおす必要があります。

cd /home/web
svn co http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_16/phase3 wiki

最ログインが完了したら、/home/web ディレクトリへアクセスができるようになっているはずです。ディレクトリを移動して、SVN リポジトリから mediawiki を wiki/ というディレクトリにチェックアウトするよう指示します。この作業は、ネットワークの環境にもよりますが若干時間がかかります。チェックアウトが完了すればインストールは完了ですが、各種設定が続きます。

Apacheの設定

MediaWiki は、HTTPサーバーである、Apacheを使ってサービスを提供しています。したがって、Apacheの設定を適切に行う必要があります。既に、Apacheのサービスは適切に設定されており、サービスが起動している前提で話をすすめます。まずは、MediaWikiを http://localhost/wiki でアクセスできるようにするため、エイリアスの設定を行います。

yum パッケージマネージャを使ったインストールを行った場合

sudo vim /etc/httpd/conf.d/mediawiki.conf
# This is a sample configuration for a wiki instance located under
# /var/www/wiki and exposed as http://thishost/wiki. Please read
# /usr/share/doc/mediawiki-*/README.RPM on whether to use this
# instance or create copies of it.
Alias /mediawiki/skins          /usr/share/mediawiki/skins
Alias /mediawiki                /home/web/wiki

上記の設定を追加して、HTTPサーバーを再起動します。

sudo /etc/rc.d/init.d/httpd reload

これで、Apacheの設定は完了です。

リポジトリからのインストールを行った場合

sudo vim /etc/httpd/config/httpd.conf
Alias /wiki/ "/home/web/wiki/"
<Directory "/home/web/wiki">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

上記の設定を追加して、HTTPサーバーを再起動します。

sudo /etc/rc.d/init.d/httpd reload

これで、Apacheの設定は完了です。

データベースの設定

MediaWikiでは、データベースとしてMySQLを使用することができます。MySQLはすでにインストール済みで、サービスが起動されているものとして話を進めます。MySQLの設定がまだ、終わっていない場合はMySQLを参照してください。 MySQLサーバーに 'root' でログインしてデータベースを初期化します。

mysql -u root -p
CREATE DATABASE mediawiki;
GRANT ALL ON mediawiki.* TO 'wiki'@'localhost' IDENTIFIED BY 'passphrase';
FLUSH PRIVILEGES;

上記のように、MySQLサーバーにクエリを投げるとデータベースが生成され 'wiki' というユーザー名と、'passphrase' というパスワードでアクセスすることができるようになります。

MediaWikiの設定

基本設定

MediaWiki の基本的な設定は、http://localhost/wiki/config/ より行えます。設定を終えたら、'config/' ディレクトリに 'LocalSettings.php' というファイルが生成されます。この設定ファイルを、以下のように MediaWiki のホームディレクトリにコピーすると基本設定は完了します。

cp config/LocalSettings.php /home/web/wiki
chown apache:apache
chmod 600

コピーしたら、'LocalSettings.php' の所有者を apache:apache に変更します。また、この設定ファイルには MySQL へログインするためのパスワードが含まれているので、最低限のアクセス権である 600(所有者のみ読み書きができる)にしておきます。より安全を期すならば、'config/' ディレクトリにあるスクリプトを実行されないようどこか実行できない場所に移動するか、アクセス権を剥奪しておいた方がいいでしょう。また、設定がすべて完了した後に LocalSettings.php の権限を 400 にして、所有者ですら、読み込みしか許可しないようにしておくといいでしょう。

特殊設定

ロゴの変更

デフォルトでは、wiki.png が指定されていますが、以下のように Apache 経由でアクセスできるところに配置された、ロゴを仕様することができます。

$wgLogo = "$wgStylePath/common/images/mediawiki.png";

タイムゾーンの設定

$wgLocalTimezone = "Asia/Tokyo";
$wgLocalTZOffset = "+9";

サブページの有効化

デフォルトでは、標準名前空間に置けるサブページは無効化されています。MediaWiki で階層化を実現するためには、これを有効にしておく必要があります。この設定は、それぞれの名前空間ごとに変えることができます。

$wgNamespacesWithSubpages = array(
    NS_MAIN => true,
);

権限の設定

ログインしていなくても、読み込みを許可。デフォルトでそうなっているため、設定の必要はありませんが逆にログインしているユーザーのみに制限するには有効です。

$wgGroupPermissions['*']['read'] = true;

ログインしていないユーザーの編集を許可しない。

$wgGroupPermissions['*']['edit'] = false;

root 以外の権限で、アカウントの生成を禁止する。

$wgGroupPermissions['*']['createaccount'] = false;

サジェスト機能の有効化

$wgEnableMWSuggest = true;

検索バーからの検索時に、AJAX を利用したサジェスト機能が有効化されます。

ユーザビリティ

最新のWikipediaのように、検索バーの見栄えをよくしたり、ウォッチリストに追加するのを簡単にするスター機能など便利な機能を追加します。まずは、ユーザビリティの拡張を有効にするため、以下のように SVN リポジトリからチェックアウトします。MediaWiki のユーザビリティに関する Extension の詳細は、http://www.mediawiki.org/wiki/Extension:UsabilityInitiative を参照してください。

cd /home/web/wiki/extensions
svn co http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_16/extensions/UsabilityInitiative/
require_once("$IP/extensions/UsabilityInitiative/Vector/Vector.php");
$wgVectorModules['editwarning']['global'] = false; // Don't enable EditWarning globally
$wgVectorModules['editwarning']['user'] = true; // Allow users to enable EditWarning in their preferences
$wgVectorUseSimpleSearch = true; // Need this as well for SimpleSearch
$wgVectorUseIconWatch = true;

また、エディタを最新のWikipediaのように高機能化するには、以下の設定を追加します。

require_once("$IP/extensions/UsabilityInitiative/WikiEditor/WikiEditor.php");
$wgDefaultUserOptions['usebetatoolbar-cgd'] = 1; // Default user preference to use toolbar dialogs
$wgWikiEditorModules['toolbar']['global'] = true; // Enable the WikiEditor toolbar for everyone
$wgWikiEditorModules['toolbar']['user'] = false; // Don't allow users to turn the WikiEditor toolbar on/off individually

エディタのツールバーがとても、リッチになりますが、まだあまり使っていないのでどこまで便利なのかは分かりません。

ファイルアップロード

MediaWiki では、文書だけでなくファイルも扱うことができます。この機能は、元来画像をアップロードするために使われているために images/ フォルダにアップロードされます。しかし、画像意外もアップロードしたいという利用目的がある場合、images/ というフォルダは必ずしも適切とは限りません。従って、images/ ディレクトリを uploads/ ディレクトリに置き換えます。

mv /home/web/wiki/images /home/web/wiki/uploads
sudo chgrp apache /home/web/wiki/uploads
sudo chmod 2770 /home/web/wiki/uploads

権限の再設定を行っていますが、このチュートリアルに従ってコマンドを実行している場合再設定の必要はありません。しかし、権限が問題になることは多いのでちゃんと設定をしておきましょう。また、PHP がファイルをアップロードができることを確認しましょう。ファイルのアップロードそのものはできても、サイズ制限がデフォルトでは 2MB となっておりとても厳しいです。100MB ぐらいの余裕は見ておいた方がいいでしょう。

sudo vim /etc/php.ini
file_uploads = On
upload_max_filesize = 100M;

設定を変更しても、Apache が再起動されるまで PHP のランタイムが再起動されることはないので設定を読み込んでくれません。以下ののようにして、Apache ごと再起動させてやります。

sudo /etc/rc.d/init.d/httpd restart

これで、PHP 自体はアップロードができるようになりましたが、デフォルトでは MediaWiki はアップロードを許可しないようになっています。以下の設定を追加して、アップロードを許可しましょう。

$wgEnableUploads = true;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";
$wgUploadPath = "$wgScriptPath/uploads";
$wgUploadDirectory = "$IP/uploads";
$wgFileExtensions[] = 'png';
$wgFileExtensions[] = 'gif';
$wgFileExtensions[] = 'jpg';
$wgFileExtensions[] = 'jpeg';
$wgFileExtensions[] = 'doc';
$wgFileExtensions[] = 'docx';
$wgFileExtensions[] = 'xls';
$wgFileExtensions[] = 'xlsx';
$wgFileExtensions[] = 'pdf';

$wgEnableUploads = false; という定義がデフォルトでかかれているので、それより前に設定を書いても無効化されてしまいます。$wgEnableUploads 変数が定義されている場合は、置き換えましょう。

シンタックスハイライト

シンタックスハイライトを実現するには、GeSHi という Extention を導入する必要があります。MediaWiki 用 GeSHi Extension については、http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi/ja を参照してください。

<syntaxhighlihght lang="bash"> cd /home/web/wiki/extensions svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi </syntaxhighlight>

extensions/ フォルダに、SVN リポジトリから GeSHi をチェックアウトします。チェックアウトが完了したら、"LocalSettings.php" 内で、以下のようにロードすることで、使用可能になります。

require_once("$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php");

プラグインをロードする際には、変数 $IP が解決された後でなければ、パスが正確に確定できないので $IP の記述の後ろに配置します。これだけで、インストールは完了です。

<syntaxhighlight lang="c">
#include <stdio.h>

int main(int argc, char **argv)
{
    printf("hello world\n");
}
</syntaxhighlight>

上記のように、記述すると以下のように表示されます。

#include <stdio.h>
 
int main(int argc, char **argv)
{
    printf("hello world\n");
}

スタイルシートを、とりあえず以下の内容を main.css に書いておくと、<pre></pre>で囲んだのと同じ効果が得られる。

div.mw-geshi {
    background-color: #F9F9F9;
    padding: 1em;
    margin: 1em 0;
    border: 1px dashed #2f6fab;
}

LDAPとの連携

MediaWiki の Extension を用いて、認証を LDAP で置き換えるには、LDAP サーバーに SSL/TLS 経由でアクセスできるようにしておかなければならない。LDAP の SSL/TLS の設定に関しては、LDAPの導入 を参照のこと。ここでは、SSL/TLS の設定がサーバー、クライアント双方ですでに完了しているものとして話を進めます。MediaWiki の LDAP Extension については、http://www.mediawiki.org/wiki/Extension:LDAP_Authentication を参照してください。まずは、以下のように SVN のリポジトリからチェックアウトします。

svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/LdapAuthentication/

チェックアウトが完了したら、LocalSettings.php で以下のように、ロードします。

require_once("$IP/extensions/LdapAuthentication/LdapAuthentication.php");
$wgAuth = new LdapAuthenticationPlugin();

ロードしたら、ドメインの設定に入ります。

$wgLDAPDomainNames = array("blood-stone", "tuntunkun");

ドメイン名の配列を指定します、このドメイン名は DNS や hosts ファイルで解決できる名前である必要はありません。以降、MediaWiki の LDAP 関連設定のキーになってきます。

$wgLDAPServerNames = array(
    "blood-stone" => "192.168.11.210",
    "tuntunkun" => "192.168.12.200"
);

このように、$wgLDAPDomainNames 配列に入っているドメイン名の実際のアドレスを記述します。試してはいませんが、ServerNames となっているので DNS 名や、何らかの方法で解決ができる名前でも構わないでしょう。

$wgLDAPUseLocal = true;

この設定を有効にすると、ローカルのユーザーでログインすることができるようになります。このローカルとは、MediaWiki が管理するユーザーのことで、SQL で管理されているユーザーのことです。ログイン時にドメインの選択肢に、「ローカル」が現れます。

$wgLDAPSearchStrings = array("blood-stone" => "cn=USER-NAME,ou=users,dc=blood-stone,dc=no-ip,dc=info");

この設定は、LDAP からユーザーを探し出す際に用いられるものです。"USER-NAME" が実際のユーザー名に対応します。

個人用ツール
名前空間
変種
操作
案内
ツールボックス