MediaWikiセットアップ手順

本手順は FreeBSD 9.x プラットフォームでの MediaWiki 1.20 のセットアップを対象にしています。 MediaWiki は Wikipedia の為に作られた Wiki で GPL ライセンスのオープンソースです。MediaWikiはエクステンションにより機能を拡張でき多様な用途に対応することが出来ます。FreeBSD では MediaWikiのPorts がありますので簡単にインストールすることが出来ます。MediaWikiのエクステンションは Git を使用してインストールを行います。

1. セットアップの内容

  • MediaWikiはNginx(80) + PHP FPM(Unix Domain Socket)の構成で稼動させます
  • データベースはMySQLを使用します

2. 前提作業

※FastCGI 環境として PHP FPM を使用しますのでPHP5.4 は予め FPM オプションを有効にしてインストールする必要があります。

3. 依存パッケージ

  • Nginx 1.4
  • php5-5.4
  • php5-extensions
    • ctype
    • iconv
    • mbstring
    • session
    • xml
    • zlib
    • readline
    • dom
  • Alternative PHP Cache(pecl-APC)
  • MiediaWiki 1.20

4. Nginxの設定を行う

vi /usr/local/etc/nginx/nginx.conf
http {
  include       mime.types;
  default_type  application/octet-stream;
  sendfile        on;

  upstream backend-mediawiki{
    server unix:/tmp/php.sock;
  }
  server {
    listen       80;
    server_name  localhost;
    charset utf-8;

    location /mediawiki/ {
      root       /usr/local/www/;
      index      index.php;
      try_files $uri $uri/ @rewrite;
    }
    location @rewrite {
      internal;
      rewrite ^/mediawiki/index\.php/(.*)$ /mediawiki/index.php?title=$1&$args;
    }
    location ~ ^/mediawiki/.*\.php$ {
      root           /usr/local/www/;
      fastcgi_pass   backend-mediawiki;
      fastcgi_index  index.php;
      fastcgi_param  SCRIPT_FILENAME /usr/local/www$fastcgi_script_name;
      include        fastcgi_params;
    }
}
設定ファイルをテストします。
/usr/local/etc/rc.d/nginx configtest
問題が無ければNginx を再起動して設定を有効にします。
/usr/local/etc/rc.d/nginx restart

5. MediaWikiのインストール

cd /usr/ports/www/mediwiki120/
make config
[X] APC use pecl-APC
[X] MYSQL MySQL database support
make install
/usr/local/www/mediwiki/ディレクトリにインストールされます。

6. phpの設定

extensions.ini を編集して phpの拡張モジュールのロード設定を編集します。
vi /usr/local/etc/php/extensions.ini
extension=apc.so
extension=ctype.so
extension=dom.so
extension=phar.so
extension=mbstring.so
extension=session.so
extension=readline.so
extension=mysql.so
extension=zlib.so
extension=iconv.so
extension=xml.so

7. MediaWiki の設定

7.1. インストールウイザードによる設定

MediaWiki の基本的な設定はWeb画面のウイザードを使用して行えるようになっていますので、 php-fpm を起動してインストールウイザードが使用できるようにします。
/usr/local/etc/rc.d/php-fpm start
http://localhost/mediawiki/ にブラウザでアクセスすると、MediaWiki のインストールウイザードが開きます。このウイザードでスキーマ、ユーザ、権限、テーブルが作成されます。 LocalSettings.php をダウンロードします。
cd /usr/local/www/mediawiki/
vi LocalSettings.php
LocalSettings.php の内容をコピーします。 php-fpm からアクセスできるようにします。
chown www:www LocalSettings.php

7.2. タイトルのキャピタライズ設定

MediaWikiの標準設定ではページタイトルの先頭が英小文字の場合は自動的に大文字に変換してタイトルが作成されますが、これを無効にしたい場合はLocalSettings.phpを以下のように直接編集します。
$wgCapitalLinks = false;

7.3. タイムゾーンの設定

タイムゾーンの設定は LocalSettings.php を直接編集することで行います。MediaWikiは国際的に利用されているのでデフォルトの時刻表示はUTCが用いられています。日本だけでの利用の場合は表示時間を日本時間にした方が良いでしょう。 localSettings.phpに以下の記述を追加します。
$wgLocalTZoffset = +540;

7.4. アップロードの設定

ファイルのアップロードは通常の操作と比較してシステム負荷が高めになりますので、利用用途に応じて細かな設定を行います。localSettings.php を直接編集します。 設定例
  • 登録されているユーザのみのファイルアップロードを許可
  • png、 jpg、 gif、 pdf ファイルのアップロードを許可
  • ファイルのアップロードサイズを5MBまでとする
  • $wgEnableUploads = true;
    $wgGroupPermissions['*']['upload'] = false;
    $wgGroupPermissions['user']['upload'] = true;
    $wgGroupPermissions['sysop']['upload'] = true;
    $wgFileExtensions = array('png','jpg','gif','pdf');
    $wgMaxUploadWize = 1024*1024*5; # 5MB
    
    PHPがデフォルトでアップロードの最大サイズを2MBに制限していますので、これを越える場合は php.iniを編集します。
     vi /usr/local/etc/php.ini
    
    upload_max_filesize = 5M
    

    8. 運用手順

    8.1. PHP FPM 起動

    /usr/local/etc/rc.d/php-fpm start
    

    8.2. PHP FPM 停止

    /usr/local/etc/rc.d/php-fpm stop
    

    9. 関連文書