Debian GNU/Linux 4.0(Etch)に Mediawiki をインストールする

オンライン百科事典ウィキペディアで利用されているウィキシステム MediaWiki を、Debian GNU/Linux 4.0(Etch) にインストールするためのメモです。なお、インターネットへ公開しないサーバで運用し、「簡単に MediaWiki をインストールしたい」人向けに書かれています。インターネットに公開する場合、セキュリティ対策やスパム対策を十分に行った上で運用する必要があります。

項目

このページでの設定

データベース名

mediawiki

データベースのユーザー名

mediawikiuser

データベースのパスワード

hogehoge

データベースの root パスワード

rootpassword

パッケージのインストール

aptitude を利用して、必要なパッケージをインストールします。

# aptitude install mediawiki php5-gd

mediawiki を指定すると mediawiki1.7 がインストールされます。これは、mediawiki1.7 を指定しても同じです。また、依存性を解決するため以下のパッケージが自動インストールされます。どのバージョンがインストールされるかは、aptitude show PackageName で調べてみてください。

  • apache2
  • php5
  • php5-mysql
  • php5-cli
  • mysql-server

mediawiki の指定だけでは、php5-gd がインストールされません。必要なパッケージですのでインストールします。

MySQL の準備

データベースの準備を行います。mysql に root としてログインします(初期状態ではパスワードなしで入れます)。

# mysql -u root

MySQL の root パスワードを設定します。ここでは、パスワードを rootpassword としています。

mysql> set password for root@localhost=password('rootpassword');

設定後、一旦ログアウトして、root によりパスワードなしでログインできないことを確認します。

mysql> quit;
bye
# mysql -u root
ERROR 1045 : Access denied for user 'root'@'localhost' (using password: NO)

設定したパスワードで入れるか確認します。

# mysql -u root -p
Enter password:(パスワードを入力)
(省略)

ログインできたら、MediaWiki で使用するデータベースを作成します。ここでは、データベース名を mediawiki、データベースのユーザー名を mediawikiuser、データベースのパスワードを hogehoge としています。

mysql> use mysql;
mysql> grant create, select, insert, update, delete, lock tables on mediawiki.* to mediawikiuser@localhost identified by 'hogehoge';

データベースを作成します。データベース名を mediawiki とするので mediawiki で作成します。

mysql> create database mediawiki;

ログアウトして、MySQL の設定を終了します。

mysql> quit;

ここまで設定した内容をメモしておいてください。MediaWiki のインストール画面で使用します。

PHP の準備

/etc/php5/conf.d/mysql.ini に以下の記述があるか確認します。

extension=mysql.so

/etc/php5/conf.d/gd.ini に以下の記述があるか確認します。

extension=gd.so

PHP が動作していることを確認するため、以下の記述を含む php ファイル phptest.php を Apache2 のドキュメントルート(デフォルトなら /var/www/)に作成し、ブラウザでアクセスします。

<?php
phpinfo();
?>

Apache2 の準備

モジュールである php5 が有効かどうか確認します。/etc/apache2/mods/enabled/ の中身のファイルが、/etc/apache2/mods-available/ へのシンボリックリンクになっていれば有効になっています。

MediaWiki のインストール準備(前編)

http://localhost/mediawiki/config/ または http://192.168.1.1/mediawiki/config/ をブラウザで開きます。

Site config

Wiki name(Wiki の名前)
MediaWiki の名称を入力します。名称はあとで変更できると思います。
Contact to e-mail(お問い合わせのメールアドレス)
非公開サーバでの運用のため、メールサーバをインストールしていません。ですので入力してもメール機能は利用できません。
Language(言語)
日本語を選択します。
Copyright/License(著作権とラインセンス)
ライセンスを主張しないか、GFDL かクリエイティブコモンズを選択できます。
Admin username(Wiki の管理者ユーザー名)
WikiSysop でよいでしょう。
Admin password(Wiki の管理者パスワード)
パスワードを2回入力します。
Shared memory caching(メモリーキャッシュを共有する)
非公開サーバでの運用のため、No Caching にします。公開サーバでの運用を行う場合、メモリのキャッシュを利用することで負荷を減らすものと思いますが、詳しくはわかりません。マニュアルを参照してください。

E-mail, E-mail notification and authentication setup

電子メール全般の設定を行います。ユーザー間のメール送信機能や、電子メールによるユーザー認証を設定できます。ここでは、非公開サーバでの運用のため、全て disable とします。

Database Config

Database type
使用するデータベースの種類を選びます。MySQL しかインストールされていないなら、MySQL しか選択できません。
Database host
MySQL を動作させるホストを入力します。Mediawiki のデータベースサーバを不可分散のため、別のサーバで運用することができます。ここでは、自分自身にインストールされた MySQL を使用するので、localhost とします。
Database name(データベース名)
最初に決めたデータベース名 mediawiki を入力します。
DB username(データベースのユーザー名)
最初に決めたデータベースのユーザー名 mediawikiuser を入力します。
DB password(データベースのパスワード)
最初に決めたデータベースのパスワード mwpassword を入力します。
Superuser acount(MySQL の管理者アカウント名)
root と入力されています。
Superuser password(MySQL の管理者パスワード)
最初に決めたパスワード rootpassword を入力します。Linux システムの root ではないことに注意してください。
Database table prefix
データベースに同じ名称があるときに、先頭文字の接尾語を指定します。mw_ でよいでしょう。
Database charset
データベースのキャラクタセットです。Backwords-complitable UTF-8(後方互換性のある UTF-8) でよいでしょう。

入力したら、Install MediaWiki ボタンをクリックします。

後始末(重要)

/var/lib/mediawiki1.7/config/LocalSettings.php を /var/lib/mediawiki1.7/ に移動して、パーミッションを 640 にします。

# mv /var/lib/mediawiki1.7/config/Localsettings.php /var/lib/mediawiki1.7/
# chmod 640 /var/lib/mediawiki1.7/LocalSettings.php

セキュリティを高めるためにフォルダ /var/lib/mediawiki1.7/config を削除するか、パーミッションを 600 にします。

# chmod -R 600 /var/lib/mediawiki1.7/config

MediaWiki のインストール準備(後編)

標準設定ではクセがあるので、設定を変更します。/var/lib/mediawiki1.7/LocalSettings.php を編集します。

ファイルのアップロードを許可する

#$wgEnableUploads       = false;

コメントアウトを取り、true に変更します。

$wgEnableUploads       = true;

タイムゾーンを日本にする

この設定は、ファイルの最後に追記します。ただし、PHP のファイルなので、ファイルの最後にある ?> より前に記述します。

$wgLocaltimezone = "Asia/Tokyo";
$wgLocalTZoffset = date("Z") / 3600;

アップロードできる拡張子を増やす

この設定は、ファイルの最後に追記します。ただし、PHP のファイルなので、ファイルの最後にある ?> より前に記述します。

$wgFileExtensions = array('gif','png','jpg','jpeg','xls','doc','ppt','pdf','txt','swf','flv','fla');

アルファベットのページ名の頭文字を大文字にしない

この設定は、ファイルの最後に追記します。ただし、PHP のファイルなので、ファイルの最後にある ?> より前に記述します。

オンライン百科事典ウィキペディアの iPod の記事を見ると分かるように、URL における i が大文字の I になっています。これを小文字になるようにできます。

$wgCapitalLinks = false;

http://localhost/mediawiki/index.php/メインページを http://localhost/mediawiki/メインページにする

デフォルトでは、index.php を挟んだ URL になるので、省略した形にできます(ウィキペディアと同じ)。

$wgArticlePath = "$wgScript/$1";

以下のように変更します。

$wgArticlePath = "/wiki/$1";

/etc/apache2/conf.d/mediawiki1.7.conf を編集します。Alias と書かれた箇所の下辺りに追記します。

Alias /wiki /var/lib/mediawiki1.7/index.php
Alias /index.php /var/lib/mediawiki1.7/index.php

Apache2 を再起動します。

# apache2ctl restart

新規ユーザーの登録を禁止する

非公開サーバで自分以外の登録は必要ないはずなので、自分自身を登録後禁止にしてしまうのもよいでしょう。

この設定は、ファイルの最後に追記します。ただし、PHP のファイルなので、ファイルの最後にある ?> より前に記述します。

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

編集を登録ユーザーのみにする

非公開サーバで自分以外の編集はないはずなので登録ユーザーのみ編集が出来るようにします。

この設定は、ファイルの最後に追記します。ただし、PHP のファイルなので、ファイルの最後にある ?> より前に記述します。

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

IPアドレスを非表示にする

デフォルト状態で、非ログインユーザーの場合、右上に自分自身の IP アドレスが表示されます。ウィキペディアのように、ログインまたはアカウント作成を表示させたい場合の設定です。

この設定は、ファイルの最後に追記します。ただし、PHP のファイルなので、ファイルの最後にある ?> より前に記述します。

$wgShowIPinHeader = false;

参考文献