(2007.11.21)
組織(会社や団体)の情報共有にWikiは効果的です。
Fedora 8 Linux に、PythonベースのWikiエンジン「MoinMoin」をインストールしてみます。イントラネット内のサーバに設置する前提で、アクセス制御は簡単にします。
Fedora 8 には、MoinMoin 1.5.8 のパッケージが用意されています。バージョンが違う場合は適宜読み替えてください。
# yum install moin
/usr/share/doc/moin-1.5.8/README-rpm ファイルに導入手順が書いてあります。
まず、次のスクリプトをrootユーザで実行して、必要なファイルをコピーします。/var/www/mywiki の部分は必要に応じて書き換えます。一つのマシンに複数のWikiサイトを作ることもできます。
/usr/share/moin/htdocs ディレクトリ以下にもデータがありますが、これは複数のwikiサイトで共有します。ここにテーマファイル、アプレットファイルを置きます。
#!/bin/sh DESTDIR=/var/www/mywiki mkdir -p $DESTDIR/cgi-bin cp -a /usr/share/moin/{data,underlay} $DESTDIR cp -a /usr/share/moin/server/moin.cgi $DESTDIR/cgi-bin cp -a /usr/share/moin/config/wikiconfig.py $DESTDIR/cgi-bin chown -R apache:apache $DESTDIR/{data,underlay}
次に、Webサーバを設定するため、/etc/httpd/conf.d/mywiki.conf ファイルを用意します。
ScriptAlias /mywiki "/var/www/mywiki/cgi-bin/moin.cgi" <Directory "/var/www/mywiki/cgi-bin/"> Options Indexes FollowSymLinks ExecCGI AllowOverride None Order allow,deny Allow from all </Directory> Alias /wiki/ "/usr/share/moin/htdocs/" <Directory "/usr/share/moin/htdocs/"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
Webサーバ (httpd) を再起動したら、http://ホスト名/mywiki にアクセスしてみます。
トップページ HelpOnLanguages にカスタマイズの手順が書かれています。それに沿ってカスタマイズしていきます。
手順を読みながら、まとめてwikiconfig.py 設定ファイルを更新するのが効率的です。
初期設定だとメッセージが英語です。まぁ別にこのままでもいいですが、日本語化します。
それから wikiconfig.py の language_default を 'ja' にします。
デフォルトではWebブラウザの言語設定に合わせて出力するようになっているので、Webブラウザによっては、MoinMoinのユーザ設定(プレファレンス)画面で言語を Japanese にしないと日本語にならないこともあります。
HelpOnLanguages ページは、スタートページとしては相応しくありません。wikiconfig.py ファイルの page_front_page で設定します。FrontPageがいいでしょう。
page_front_page = u"FrontPage"
標準のテーマは、率直に言って、あまり見栄えがしません。テーマを導入しましょう。公式サイトにテーマ集があります。
例えば、MentalWealth を入れてみました。まず、デフォルトテーマを変更します。
これだけです。Wikiユーザは、ユーザ設定画面でデフォルトのテーマ以外にも変更できます。
MoinMoin は複雑なアクセス制御 (access control) ができますが、組織において部門単位でアクセス制限を掛けるのは関心しません。いったい、本当に部内秘に「しなければならない」ものがどれだけあるでしょうか。財務情報ですら、組織内に対してはオープンであるべきです (open-book management)。
以下では、誰でも見れるけれど、ログインユーザだけが編集できるようにしてみます。詳しくは Wikiサイトの HelpOnAccessControlLists ページを参照してください。
MoinMoinのアクセス制御は、(1) どのような権限を (2) どのユーザ(もしくはグループ)に与えるか、という風にして設定していきます。
wikiconfig.py でサイト共通の設定を決め、さらにページ単位で修正することができます。
まず権限は次のものがあります。
加えて、read, write, deleteのすべてを持つユーザ(グループ)は、ページを rename できます。
権限を付与できる対象は、
これらを組み合わせて設定を書きます。
wikiconfig.py に書く設定は、サイト全体に適用されます。
すべての設定に優先して適用されます。サイト全体の管理者や編集者を定めるのに使います。
各ページ独自のアクセス制御の設定がないときに使われます。
acl_rights_before, 各ページの設定(またはacl_rights_default)の後に適用されます。備忘用。
設定する値は次の形です。
ユーザ名,...:権限,... ユーザ名,...:権限
空白文字で区切るので、カンマの前後、コロンの前後に空白を挟んではいけません。
MoinMoinはすべてのデータをファイルに保存するので、単純にそれを固めればいいです。
TODO: 手順