MacWiki:MediaWikiのインストール

提供: MacWiki
2011年5月14日 (土) 08:01時点におけるたちゃな (トーク | 投稿記録)による版

移動: 案内検索

インストールメモ

sourceforge.jp へ MediaWiki をインストールするにあたり、おこなった手順について書いておきます。(Apr 12, 2007)

アーカイブの展開

まず、sourceforge.jp のシェルサーバにログインし、MediaWiki 1.16 系列の配布ファイルを MacWiki プロジェクトディレクトリ配下の htdocs/wiki に展開します。各ファイルは group writable にしておきます。

takanori@pc192168024032$ ssh tatyana@shells.sourceforge.jp

tatyana@sf-usr-shell$ cd Sources/
tatyana@sf-usr-shell$ wget http://download.wikimedia.org/mediawiki/1.16/mediawiki-1.16.5.tar.gz
tatyana@sf-usr-shell$ openssl rmd160 mediawiki-1.16.5.tar.gz
RIPEMD160(mediawiki-1.16.5.tar.gz)= 0a8298051baaf02f400bc6f317508f7b7544ec57

tatyana@sf-usr-shell$ cd /home/groups/m/ma/macwiki/htdocs/
tatyana@sf-usr-shell$ tar xvfz ~/Sources/mediawiki-1.16.5.tar.gz
tatyana@sf-usr-shell$ mv mediawiki-1.16.5 wiki

tatyana@sf-usr-shell$ find wiki -type d | xargs chmod 2775
tatyana@sf-usr-shell$ find wiki -type f | xargs chmod 664
tatyana@sf-usr-shell$ chmod o+w wiki/config wiki/images

sourceforge.jp において PHP のプロセスは www-data:www-data の権限で動作します。この仕様のため、PHP のプロセスから書き込みがおこなわれる wiki/config および wiki/images のディレクトリは、everyone writable として設定せざるを得ません。

DB の設定

データベースの character set を utf8 に設定しておきます。(character set が binary の場合、インストール途中でエラーが発生することがあります。)

$ mysql -u macwiki --database=macwiki --host=mysql5.sourceforge.jp -p
(mysql> drop database macwiki
 mysql> create database macwiki)
mysql> alter database macwiki character set utf8;
mysql> Bye

ブラウザ上からのインストール作業

ウェブブラウザで config/index.php にアクセスします。

Checking environment...

Please include all of the lines below when reporting installation problems.
PHP 5.2.0-8+etch13 installed
Found database drivers for: MySQL
Warning: PHP's safe mode is active. You may have problems caused by this, particularly if using image uploads.
PHP server API is apache2handler; ok, using pretty URLs (index.php/Page_Title)
Have XML / Latin1-UTF-8 conversion support.

Warning: is_dir() [function.is-dir]: open_basedir restriction in effect. File(/var/lib/php5) is not within the allowed path(s): (/home/groups/local/pear:/home/groups:/tmp:/usr/bin:/bin) in /home/groups/m/ma/macwiki/htdocs/wiki/config/index.php on line 441
Warning: Your session.save_path value (/var/lib/php5) appears to be invalid or is not writable. PHP needs to be able to save data to this location for correct session operation.
PHP's memory_limit is 32M.
Couldn't find Turck MMCache, eAccelerator, APC or XCache; cannot use these for object caching.
GNU diff3 not found.
Found GD graphics library built-in, image thumbnailing will be enabled if you enable uploads.
Installation directory: /home/groups/m/ma/macwiki/htdocs/wiki
Script URI path: /wiki
Installing MediaWiki with php file extensions
Environment checked. You can install MediaWiki.

Site config の各項目を入力します。

Wiki name: MacWiki
Contact e-mail: tatyana@users.sourceforge.jp (仮設定です。LocalSettings.php を書き換えることで変更できると思います。)
Language: ja - 日本語
Copyright/license: No license metadata (GFDL と CC から選択できますが、とりあえずパブリックドメインを踏襲します。)
Admin username: WikiSysop
Password: ******** (実際のパスワードはプロジェクトディレクトリの ReadMe.txt を参照してください。)
Password confirm: ********
Object caching: No caching
Memcached servers:

E-mail features (global): Enabled
User-to-user e-mail: Enabled
E-mail notification about changes: Enabled for changes to user discussion pages, and to pages on watchlists (not recommended for large wikis)
E-mail address authentication: Enabled

Database type: MySQL
Database host: mysql5.sourceforge.jp
Database name: macwiki
DB username: macwiki
DB password: ******** (実際のパスワードはプロジェクトディレクトリの ReadMe.txt を参照してください。)
DB password confirm: ********

Superuser account: -
Superuser name: root
Superuser password: * (おそらく使われないのでしょう。)

Database table prefix: mw_ (DB を他用途にも使うことを想定し、念のためテーブル名に prefix を付けておきます。)
Storage Engine: InnoDB
Database charset: MySQL 4.1/5.0 binary

ボタンを押すとインストールが始まります。

Warning: $wgSecretKey key is insecure, generated with mt_rand(). Consider changing it manually.
Generating configuration file...
Database type: MySQL
Loading class: DatabaseMysql
Attempting to connect to database server as macwiki...success.
Connected to mysql 5.0.51a-24-log; enabling MySQL 4.1/5.0 charset mode
Database macwiki exists
Creating tables... done.
Initializing statistics...
Created sysop account WikiSysop.
Creating LocalSettings.php...
Installation successful! Move the config/LocalSettings.php file to the parent directory, then follow this link to your wiki.
You should change file permissions for LocalSettings.php as required to prevent other users on the server reading passwords and altering configuration data.

生成された config/LocalSettings.php をしかるべき場所に再配置します。

tatyana@sf-usr-shell$ cp config/LocalSettings.php ./LocalSettings.php
tatyana@sf-usr-shell$ chmod 664 LocalSettings.php

sourceforge.jp では、PHP のプロセスは www-data:www-data 権限で動作するので、このファイルもまた everyone readable にせざるを得ません。

config ディレクトリは以後不要となるので削除しておきます。

PHP セッションセーブパスの設定

Running MediaWiki on Sourceforge.net によると、 sourceforge では以下のようにして PHP のセッションセーブパスを設定しておくことが必須のようです。

ガイド文書では /tmp/persistent/PROJECT_UNIX_NAME/sessions にディレクトリを作成するように書かれていますが、 ここではプロジェクトディレクトリに var を掘り、その中に用意することにしました。

tatyana@sf-usr-shell$ mkdir -p /home/groups/m/ma/macwiki/var/mediawiki_sessions
tatyana@sf-usr-shell$ chmod a+w /home/groups/m/ma/macwiki/var/mediawiki_sessions
[LocalSettings.php]
<?php

session_save_path("/home/groups/m/ma/macwiki/var/mediawiki_sessions");
...

PHP では本来、24 分経過したセッションは自動的に破棄 (session.gc_maxlifetime = 1440) されますが、スクリプト内でセッションセーブパスを変更した影響か、生成されたファイルが削除されません。ここではその代替として一日一回 cron により破棄するようにします。

$ crontab -e
-------------------------------------------------------------------------------------------------------
12      0       *       *       *       /usr/bin/find /home/groups/m/ma/macwiki/var/mediawiki_sessions -type f -mtime +1 -delete
-------------------------------------------------------------------------------------------------------

タイムゾーンの設定

[LocalSettings.php]
...
# $wgLocaltimezone = 'Asia/Tokyo';
$wgLocalTZoffset = '+540';

sourceforge.jp では PHP が safe mode で動いている都合上、一行目を有効にすることはできません。

画像ファイルアップロードの許可

画像ファイルのアップロードを許可します。

[LocalSettings.php]
...
$wgEnableUploads         = true;

sourceforge.jp では PHP が safe mode で動作しているため、ハッシュツリーに基づいた画像ファイルの格納はできません。($wgHashedUploadDirectory は false)

LocalSettings.php 中のメモに従い、images ディレクトリ配下に手動でサブディレクトリを用意します。

$ cd images
$ mkdir archive thumb temp
$ chmod a+w archive thumb temp

外部画像の埋め込みを許可する

画像ファイルの URL が記入された場合に、画像を埋め込んで表示させるようにします。

[LocalSettings.php]
...
$wgAllowExternalImages = true;

ページ名の最初の文字に小文字を使えるようにする

デフォルトでは、ページ名の先頭文字は常に大文字に変換されます。

LocalSettings.php に $wgCapitalLinks = false; の設定行を加えることで、ページ名の最初の文字に小文字を使えるようにできます。(pTeX が PTeX などとならずに済みます。)

[LocalSettings.php]
...
$wgCapitalLinks = false;

InterWiki の設定

InterWiki 機能を使うため、 maintenance/interwiki.sql を参考に、DB 内のテーブル mw_interwiki を書き換えます。

$ mysql -u macwiki --database=macwiki --host=mysql5.sourceforge.jp -p

mysql> REPLACE INTO mw_interwiki (iw_prefix,iw_url,iw_local) VALUES
      ('google','http://www.google.com/search?q=$1',0),
      ('find','http://macwiki.sourceforge.jp/wiki/index.php/%E7%89%B9%E5%88%A5:Search?search=$1&fulltext=%E6%A4%9C%E7%B4%A2',0),
      ('isbn','http://www.amazon.co.jp/exec/obidos/ASIN/$1',0),
      ('asin','http://www.amazon.co.jp/exec/obidos/ASIN/$1',0),
      ('wikipedia','http://ja.wikipedia.org/wiki/$1',0),
      ('wikipedia-en','http://en.wikipedia.org/wiki/$1',0);

wiki のページにおいて、二重スクエアブラケットの中にたとえば [[Wikipedia:ほにゃらら]] などと書けば、wikipedia の当該記事へのリンクとなります。 InterWiki の設定は、あまり多くしても使わなくなると思います。

ConfirmEdit + MacWikiCaptcha の導入

spam 防止のため、ConfirmEdit を導入します。

まず、ConfirmEdit の配布ファイルを SVN より取得し、extensions/ConfirmEdit ディレクトリに格納します。

tatyana@sf-usr-shell$ cd extensions
tatyana@sf-usr-shell$ svn checkout http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/ConfirmEdit
A  ConfirmEdit/MathCaptcha.php
A  ConfirmEdit/ConfirmEdit.i18n.php
A  ConfirmEdit/FancyCaptcha.i18n.php
A  ConfirmEdit/ConfirmEdit.php
A  ConfirmEdit/FancyCaptcha.php
A  ConfirmEdit/captcha.py
A  ConfirmEdit/MathCaptcha
リビジョン 21231 をチェックアウトしました。

続いて MacWikiCaptcha を導入します。 プロジェクトの svn レポジトリより入手し、extensions/MacWikiCaptcha ディレクトリ内に設置します。

$ svn checkout http://svn.sourceforge.jp/svnroot/macwiki/tatyana/MacWikiCaptcha

その後、LocalSettings.php で ConfirmEdit + MacWikiCaptcha を読み込ませます。

[LocalSettings.php]
...
require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" );
require_once( "$IP/extensions/MacWikiCaptcha/MacWikiCaptcha.php" );
$wgCaptchaClass = 'MacWikiCaptcha';
$wgGroupPermissions['user']['skipcaptcha'] = true;
$wgCaptchaTriggers['edit']                 = true; // Would check on every edit
$wgCaptchaTriggers['create']               = true; // Check on page creation.
...

sourceforge.jp アイコンの表示

sourceforge のサービスを利用している場合、 プロジェクトホームページにロゴを張り付ける必要があるので対処。

--- includes/Skin.php.orig	2011-01-04 15:15:54.000000000 +0900
+++ includes/Skin.php	2011-02-13 21:07:15.000000000 +0900
@@ -1540,6 +1540,7 @@
 		global $wgStylePath;
 		$url = htmlspecialchars( "$wgStylePath/common/images/poweredby_mediawiki_88x31.png" );
 		$img = '<a href="http://www.mediawiki.org/"><img src="' . $url . '" height="31" width="88" alt="Powered by MediaWiki" /></a>';
+		$img .= ' <a href="http://sourceforge.jp/"><img src="http://sourceforge.jp/sflogo.php?group_id=1160" width="96" height="31" border="0" alt="SourceForge.JP" /></a>';
 		return $img;
 	}
 

ロゴ/favicon の変更

オリジナルのロゴが出来上がるまで、とりあえずは MediaWiki のアイコンで代用しておきます。

[LocalSettings.php]
...
$wgLogo             = "$wgScriptPath/skins/monobook/wiki.png";
$wgFavicon          = "/favicon.png";

htdocs ディレクトリ直下に favicon.png を設置。

SiteCss を使わない

[LocalSettings.php]
...
$wgUseSiteCss = false;

SiteCss を有効にしていると、sourceforge.jp 上では何故か、数十回のリロードにつき一度あるかないかの割合で GET /test/index.php?title=MediaWiki:Common.css&action=raw&ctype=text/css&smaxage=18000 のクエリ (PHP を介した css ファイルの読み出し)がおこなわれた際に 30 秒間の待ちが発生することが観測された。 (このファイルはキャッシュされるため、一般的な利用下での発生頻度はさらに低い。)

30 秒というのは PHP のタイムアウト時間と等しく、一つにはプロセスの出力バッファ周りでの不具合というのが 原因として考えられたが、sourceforge.jp ではウェブサーバにログインをおこなうことができないため、 根本的な原因の特定には至らなかった。

よって、今回は $wgUseSiteCss を false に設定することでクエリを抑止し、かかる問題を回避した。 (この場合、Common.css はスタティックなデータとしてダウンロードされるようになる。)

フォント/配色の変更

全体のフォントサイズの調整

--- skins/monobook/main.css.orig	2009-09-26 09:49:32.000000000 +0900
+++ skins/monobook/main.css	2011-02-13 20:20:34.000000000 +0900
@@ -40,7 +40,7 @@
 */
 
 body {
-	font: x-small sans-serif;
+	font-size: 76%;
 	background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat;
 	color: black;
 	margin: 0;
  • MacWiki と同じく、フォントフェイスは未設定としています。これにより、Mac 上では一般にヒラギノ明朝で表示されます。

MacWiki のデザインに似せる

その他、css を使ったデザインの調整に関しては、このファイルを書き換えることで可能となるようです。たとえば、

@@ -138,6 +138,21 @@
 h6 { font-size: 80%;  }
 h6 .editsection { font-size: 125%; font-weight: normal; }
 
+/*kokokara*/
+h2 { font-size: 120%; }
+h2 .editsection { font-size: 83%; }
+h2 { padding: .3em 0 .3em .5em; margin-left: -5pt; }
+h2 {
+    border-bottom: none;
+    font-weight: bold;
+}
+h3 { font-size: 100%; }
+h3 .editsection { font-size: 100%; }
+h3 { padding: .15em 0 .15em .5em; }
+h3 { font-weight: normal; }
+h2, h3 { background-color: #ccf; border-color: #66c; border-style: solid; border-width: 0 0 0 15pt; }
+/*kokomade*/
+
 ul {
 	line-height: 1.5em;
 	list-style-type: square;
@@ -228,6 +243,14 @@
 	line-height: 1.1em;
 }
 
+/*kokokara*/
+pre {
+    border: 1px solid #99f;
+    color: #333;
+    background-color: #eef;
+}
+/*kokomade*/
+
 /*
 ** the main content area
 */

以上で h2, h3 と pre のデザインが 旧 MacWiki ライクになります。

その他

プレビュー画面の背景を調整します。

@@ -1306,3 +1329,7 @@
 .no-text-transform {
 	text-transform: none;
 }
+
+div#wikiPreview {
+    background-image : url("preview.png");
+}

preview.png は skins/monobook に設置。

タイトルをデフォルトの「(ページ名) - MacWiki」から「MacWiki - (ページ名)」に変更

--- includes/OutputPage.php.orig	2011-01-04 15:15:54.000000000 +0900
+++ includes/OutputPage.php	2011-02-13 20:57:24.000000000 +0900
@@ -2169,7 +2169,11 @@
 		}
 
 		$ret .= "<head>\n";
-		$ret .= "<title>" . htmlspecialchars( $this->getHTMLTitle() ) . "</title>\n";
+		if ( preg_match( '/^(.*) - ([^-]*)$/', $this->getHTMLTitle(), $match ) ) {
+			$ret .= "<title>" . htmlspecialchars( "$match[2] - $match[1]" ) . "</title>\n";
+		} else {
+			$ret .= "<title>" . htmlspecialchars( $this->getHTMLTitle() ) . "</title>\n";
+		}
 		$ret .= implode( "\n", array(
 			$this->getHeadLinks(),
 			$this->buildCssLinks(),

ページフッタに copyright, privacy policy, disclaimer へのリンクを表示しない

--- skins/MonoBook.php.orig	2010-05-12 11:12:12.000000000 +0900
+++ skins/MonoBook.php	2011-02-13 20:29:54.000000000 +0900
@@ -174,8 +174,8 @@
 
 		// Generate additional footer links
 		$footerlinks = array(
-			'lastmod', 'viewcount', 'numberofwatchingusers', 'credits', 'copyright',
-			'privacy', 'about', 'disclaimer', 'tagline',
+			'lastmod', 'viewcount', 'numberofwatchingusers', 'credits', /*'copyright',*/
+			/*'privacy',*/ 'about', /*'disclaimer',*/ 'tagline',
 		);
 		$validFooterLinks = array();
 		foreach( $footerlinks as $aLink ) {

バックアップスクリプト

とりあえず、現在は私 (たちゃな) の権限下で以下のスクリプトを動かしている。

$ install -m 2770 -d /home/groups/m/ma/macwiki/var/mediawiki_backup
$ install -m 700 -d /home/users/t/ta/tatyana/Sources/macwiki_dump
[/home/users/t/ta/tatyana/Sources/macwiki_dump/backup_macwiki.sh]
#!/bin/bash

HOME=/home/users/t/ta/tatyana/Sources/macwiki_dump

destdir='/home/groups/m/ma/macwiki/var/mediawiki_backup'
expire=+90

filename=mediawiki_`date +"%Y%m%d_%H%M%S.sql"`
group=macwiki
dbuser=macwiki
dbname=macwiki
dbhost=mysql5.sourceforge.jp


if ! test -f $HOME/.my.cnf; then
  echo "cannot open \"$HOME/.my.cnf\""
  exit 1
fi

find $destdir -type f -mtime $expire -delete

touch $HOME/${filename}
chmod 600 $HOME/${filename}
mysqldump --quick -u $dbuser $dbname --host=$dbhost > $HOME/${filename}
bzip2 -9 $HOME/${filename}
mv $HOME/${filename}.bz2 "${destdir}/${filename}.bz2"
chgrp $group "${destdir}/${filename}.bz2"
chmod 660 "${destdir}/${filename}.bz2"
[/home/users/t/ta/tatyana/Sources/macwiki_dump/.my.cnf]
[client]
password=********
$ chmod 700 /home/users/t/ta/tatyana/Sources/macwiki_dump/backup_macwiki.sh
$ chmod 600 /home/users/t/ta/tatyana/Sources/macwiki_dump/.my.cnf
$ crontab -e
-------------------------------------------------------------------------------------------------------
12      0       *       *       *       /home/users/t/ta/tatyana/Sources/macwiki_dump/backup_macwiki.sh
-------------------------------------------------------------------------------------------------------

ArticleComments/Lite

一行コメント機能が欲しかったので、 ArticleComments をベースにオリジナルのエクステンションを作成した。

インストール方法は、MacWiki プロジェクトの svn ツリーから ArticleCommentsLite.php を取得し、MediaWiki の extensions ディレクトリに設置するだけ。

$ cd extensions
$ svn checkout http://svn.sourceforge.jp/svnroot/macwiki/tatyana/ArticleCommentsLite

その後、LocalSettings.php に以下のように書く。

MediaWiki 1.16.x で使う場合:

[LocalSettings.php]
...
require_once("$IP/extensions/ArticleCommentsLite/ArticleCommentsLite.php");
$wgArticleCommentLiteDefaults['nokana']=true;

MediaWiki 1.15.x で使う場合:

[LocalSettings.php]
...
require_once("$IP/extensions/ArticleCommentsLite/for_1.15.4/ArticleCommentsLite.php");
$wgArticleCommentLiteDefaults['nokana']=true;

ここで、各々2行目の設定は旧 MacWiki 準拠の spam 防止機能を有効にするためのオプションで、 書き込まれたコメント中に(平|片)仮名が含まれていることを要求するためのもの。デフォルトでは false。

現在、談話室 のページでテスト中。(Apr 29, 2007〜)

注意

MediaWiki 1.15.4 で API の変更が生じたため、SVN 版 r626 までのものは動作しません。r710 以降にアップデートして使ってください。

逆に、r710 は以前のバージョンの MediaWiki で動かない筈です。--たちゃな 2010年5月28日 (金) 11:59 (UTC)

全文検索の機能改善 (experimental)

MySQL は日本語テキストのインデックス化に難があり、全文検索での取りこぼしが顕著である。(MyISAM の FULLTEXT INDEX は空白で区切られたワード単位でパーズがおこなわれるため。)

加えて MediaWiki 側での前処理も酷い。(MediaWiki 1.14.0 の languages/classes/LanguageJa.php を参照せよ。この処理だと、たとえば直前のセンテンスは「全文検索」ではヒットするが、「全文」や「検索」では途端にヒットしなくなってしまう。また、Chinese, Korean, および BMP 外の漢字等についても配慮が欠けている。これなら LanguageZh.php のアプローチの方が、まだまし。)

いずれにせよ、MediaWiki は日本語の検索をおこなう場面では殆ど使いものにならない。

根本的な解決のためには、MySQL 自体に手を加える必要があると思われる (e.g. Tritonn) が、ここではエクステンションを作成することで一応の回避を試みた。

インストール方法は、MacWiki プロジェクトの svn ツリーから BruteSearch.php を取得し、MediaWiki の extensions ディレクトリに設置する。

$ cd extensions
$ svn checkout http://svn.sourceforge.jp/svnroot/macwiki/tatyana/BruteSearch

その後、LocalSettings.php に次のように書く。

[LocalSettings.php]
...
require_once("$IP/extensions/BruteSearch/BruteSearch.php");
$wgSearchType       = "BruteSearch";
$wgDisableSearchUpdate = true;

以上で検索機能が置き換わり、より良好な全文検索結果が得られるようになる。($wgDisableSearchUpdate の設定を併せておこなうことで、ページの更新にかかる時間を短縮できる。)

ピリオドを含んだ検索

ピリオドを含んだ検索(e.g. "10.4", "10.5")を許可したい場合。(オプション)

--- includes/search/SearchEngine.php.orig	2010-03-13 03:22:38.000000000 +0900
+++ includes/search/SearchEngine.php	2011-02-13 20:07:03.000000000 +0900
@@ -188,7 +188,7 @@
 	}
 
 	public static function legalSearchChars() {
-		return "A-Za-z_'.0-9\\x80-\\xFF\\-";
+		return "A-Za-z_'.0-9\\x80-\\xFF\\-\\.";
 	}
 
 	/**

カテゴリページとプロジェクトページをデフォルトの検索対象に追加する

[LocalSettings.php]
...
$wgNamespacesToBeSearchedDefault = array(
        NS_MAIN           => true,
        NS_CATEGORY       => true,
        NS_PROJECT        => true,
);

懸案事項

  • sourceforge.jp 側の制限のため、幾つかのディレクトリ・ファイルを everyone readable/writable として設定しなければなりませんでした。セキュリティ上の問題が生じるかも知れません。
  • MediaWiki の math 機能(TeX による数式の組版)をビルドするには OCaml が必要となりますが、sourceforge.jp にはインストールされていないので使えません。
  • アップロードされたファイルの格納方法は、ハッシュツリーを使った方式ではなく、ベタで置かれるようです。LocalSettings.php 中のメモには、PHP をセーフモードで動かす場合、ハッシュツリーに従う方式は使えないようなことが書かれています。

メモ

今後の設定項目等。

ゲストでの書き込みを許可しないようにするには

[LocalSettings.php]
...
$wgGroupPermissions['*'    ]['edit']            = false;

ただし、登録ユーザしか書き込みできないようにすると、今度はその弊害が気掛かりです。(気軽に書き込んでもらえなくなるので。)

ConfirmEdit + MacWikiCaptcha を用いることで、ゲストの書き込みを一律不可とせずとも、spam/abuse への充分な抑止となるのではないかと考えています。

アップロード可能なファイルサイズを変更するには

アップロード可能なファイルサイズの制限は、php.ini 側での設定 (upload_max_filesize) でおこないます。 sourceforge.jp では現在 8 MB に設定されているようです。

警告を出すファイルサイズの閾値は $wgUploadSizeWarning で設定できます。 MediaWiki 1.16 では false に設定されており、警告は無効化されています。

アップロード可能なファイルタイプを追加するには

$wgFileExtensions の配列で制御できます。(デフォルトでは png, gif, jpg, jpeg のみ)

新規アカウント登録者の IP アドレスを調べるには

  • MediaWiki では、新規アカウント登録者の IP アドレスはわからないでしょうか? 最近続いているスパム投稿(ボット?)のアドレスを、上位ネットワークごと遮断したいのですが -- 2011年5月14日 (土) 02:23 (JST)
$ mysql -u macwiki --database=macwiki --host=mysql5.sourceforge.jp -p
mysql> select rc_timestamp,rc_user_text,rc_ip from mw_recentchanges where rc_log_type='newusers';
+----------------+-----------------+-----------------+
| rc_timestamp   | rc_user_text    | rc_ip           |
+----------------+-----------------+-----------------+
| ************** | *****           | ***.***.**.***  | 
| ************** | ****            | ***.***.**.**   | 
| ************** | **************  | ***.**.***.**   | 
| ************** | *************** | **.***.***.**   | 
| ************** | *******         | ***.***.***.*** | 
+----------------+-----------------+-----------------+
5 rows in set (0.00 sec)

mysql> Bye

アップデート手順

1.16.0 → 1.16.x をおこなう際のメモ。

事前に DB のバックアップを取っておく。

$ install -m 0700 -d ~/.dump
$ cd ~/.dump
$ touch macwiki.sql
$ chmod 600 macwiki.sql
$ mysqldump --quick -u macwiki macwiki --host=mysql5.sourceforge.jp -p > macwiki.sql

MediaWiki の配布ファイルを取得・展開する。

$ cd ~/Sources
$ wget http://download.wikimedia.org/mediawiki/1.16/mediawiki-1.16.x.tar.gz
$ openssl rmd160 mediawiki-1.16.x.tar.gz
RIPEMD160(mediawiki-1.16.x.tar.gz)= ...
$ cd /home/groups/m/ma/macwiki/htdocs/
$ tar xvfz ~/Sources/mediawiki-1.16.x.tar.gz
$ mv mediawiki-1.16.x wiki_new
$ find wiki_new -type d | xargs chmod 2775
$ find wiki_new -type f | xargs chmod 664

$ cd wiki_new
$ install -m 0664 ../wiki/LocalSettings.php . (sourceforge.jp での制約)

$ mv images images.orig
$ mv ../wiki/images . (これも sourceforge.jp の制約絡み)
$ cp -p images.orig/.htaccess images/
$ cp -Rp ../wiki/extensions .
$ cd extensions/ConfirmEdit
$ svn update
$ cd ..
$ find ConfirmEdit -type d | xargs chmod 2775
$ find ConfirmEdit -type f | xargs chmod 664
$ cd ..
$ rm -rf config
  • 1.16.3 以降 IE6 の XSS 対策として images/.htaccess が追加されているので注意。
$ mv includes/search/SearchEngine.php includes/search/SearchEngine.php.orig && \
  install -m 0664 ../wiki/includes/search/SearchEngine.php includes/search/
$ mv includes/Skin.php includes/Skin.php.orig && \
  install -m 0664 ../wiki/includes/Skin.php includes/
$ mv includes/OutputPage.php includes/OutputPage.php.orig && \
  install -m 0664 ../wiki/includes/OutputPage.php includes/
$ mv skins/MonoBook.php skins/MonoBook.php.orig && \
  install -m 0664 ../wiki/skins/MonoBook.php skins/
$ mv skins/monobook/main.css skins/monobook/main.css.orig && \
  install -m 0664 ../wiki/skins/monobook/main.css skins/monobook/
$ install -m 0664 ../wiki/skins/monobook/preview.png skins/monobook/
$ mv skins/monobook/wiki.png skins/monobook/wiki.png.orig && \
  install -m 0664 ../wiki/skins/monobook/wiki.png skins/monobook/
$ install -m 0664 ../wiki/.htaccess ./

DB への書き込みを一時的にロックする。

[../wiki/LocalSettings.php]
...
$wgReadOnly = 'Upgrading to MediaWiki 1.16.x';
?>

DB をアップデートののち、新旧を差し替える。

$ php maintenance/update.php
$ cd ..
$ mv wiki wiki_old && mv wiki_new wiki

関連リンク