apache, php5, mysql をpackageで導入した, VirtualHostを使用しているdebian web serverで, www.mediawiki.org で配布される tar.gz で mediawiki を手動でインストールして利用していたが, 今回, debian の mediawiki package を使ってみた(データ移行はしていない)
こんな文書があったがちょっと古い.
http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Debian_GNU/Linux/ja
合計すると, debian package にしてhappyになった気がする.
debian package版mediawikiのメリット
www.mediawiki.org の .tar.gz の最新版は, セキュリティ関係でよくpatchがでる(メールで通知). だいたいは .tar.gz を展開するだけなのだが, PHPのバージョンの確認などで気をつかう. debian package なら, apt-get update だけしておけばそんなにひどいことにはならないだろうと思える.
extensionも, apt-get install mediawiki-extensions で一通り導入されるし, 必要な他のpackage, 例えば imagemagick なども依存性が考慮されて自動的に導入される.
また, .tar.gz を手動でインストールしたときはアップロードでファイルタイプが正しく認識されなかった. これがdebian packageなら直るかも, と思ったのが切り替えの直接的な動機だった. 最終的には改善できた(別に書く予定)のだが, debian packageに切り替えたのが原因(の一部)か, 追加の設定作業を行ったのだけが原因か, 記録が不完全でわからない.
debian package版mediawikiのデメリット
バージョンが古い. 例えば2011-03-25時点では
- squeezeのstable のdebian packageは1.15.2-2
- www.mediawiki.org の最新版は mediawiki-1.16.2.tar.gz, 利用可能な以前のバージョンは mediawiki-1.15.5.tar.gz
となっている.
Debian package版では, 一部ファイル配置が独自になっているところがある. その結果, www.mediawiki.org のdocumentと相違が生じ, README.Debian にも詳細に記述されていない.
インストール手順(VirtualHost)
/etc/mediawiki/apache2.conf (これはsites-availableの設定にmergeされることが想定されている)の中身を見ると,
/var/lib/mediawiki を, (DocumentRoot)/wiki のAliasとすることが想定されているが, 一方, このやりかたはVirtualHost下ではうまくいかないことが示唆されている.
そこでDocumentRootを/var/lib/mediawiki そのものとしてみたがindex.phpは正しく見られるものの, index.phpにあるlinkは正しく働かなかった.
DocumentRoot内に/var/lib/mediawikiのsymlinkを作ったら, すべて正常になったように思える.
(DocumentRoot)/wiki/index.php にwebサーバでアクセスしてインストール, config内に生成されたLocalSettings.php を手動で /etc/mediawiki にコピー. 実はコピー前から /var/lib/mediawiki/LocalSettings.php は /etc/mediawiki/LocalSettings.php のシンボリックリンクになっていたので, 実質, wiki の中においたのと同じ.
ひとつのVirtualHost内で, LocalSettings.php を複数もつことにより複数のwikiを実現したい場合,
インストール後に
mv /etc/mediawiki/LocalSettings.php /etc/mediawiki/LocalSettings2.php cd /var/lib/mediawiki rm LocalSettings.php ln -s /etec/mediawiki/LocalSettings2.php LocalSettings.php
その後, 次のインスタンスをインストール, のようなことを繰り返せばよい(はず. 未検証)
extensions の管理
各extensions の大部分のファイルは /usr/share/mediawiki-extensions/ (/var/lib/mediawiki/extensions にsymlink) にインストールされ,
loader のような小部分が /etc/mediawiki/extensions/extensions-available/extension名.php にインストールされる.
Apahce httpd server の a2enmod/a2dismod によるmodule管理とよく似ており, mwenext/mwdisext で, /etc/mediawki/extensions/extensions-enabled にsymlinkが作成/削除されることによってextensionは有効化/無効化される.
各extensionの設定は LocalSettings.php に追記することで行える.
あっ後から気づいたけど, 各extensionの設定は /etc/mediawiki/extensions/extensions-available/extension名.php の末尾に追加すれば独自の設定は /etc 以下にまとめられるし, mwenext/mwdisext で非整合にならない.