MoinMoinのインストールと運用
(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 設定ファイルを更新するのが効率的です。
日本語メッセージを追加する
初期設定だとメッセージが英語です。まぁ別にこのままでもいいですが、日本語化します。
- まず最初のWikiユーザを作り、wikiconfig.py ファイルの superuser 項目を編集してサイト管理者にします。
- ログインした上で、http://ホスト名/mywiki/SystemPagesSetup にアクセスします。
- 各言語の行に install とあるので、それをクリックします。
それから wikiconfig.py の language_default を 'ja' にします。
デフォルトではWebブラウザの言語設定に合わせて出力するようになっているので、Webブラウザによっては、MoinMoinのユーザ設定(プレファレンス)画面で言語を Japanese にしないと日本語にならないこともあります。
スタートページを変更する
HelpOnLanguages ページは、スタートページとしては相応しくありません。wikiconfig.py ファイルの page_front_page で設定します。FrontPageがいいでしょう。
page_front_page = u"FrontPage"
テーマを追加する
標準のテーマは、率直に言って、あまり見栄えがしません。テーマを導入しましょう。公式サイトにテーマ集があります。
例えば、MentalWealth を入れてみました。まず、デフォルトテーマを変更します。
- アーカイブを /usr/share/moin/htdocs に展開します。
- テーマ名/テーマ名.py ファイルを /var/www/mywiki/data/plugin/theme にコピー。
- /var/www/mywiki/cgi-bin/wikiconfig.py ファイルを編集します。theme_default を書き換えます。
これだけです。Wikiユーザは、ユーザ設定画面でデフォルトのテーマ以外にも変更できます。
アクセス制御
MoinMoin は複雑なアクセス制御 (access control) ができますが、組織において部門単位でアクセス制限を掛けるのは関心しません。いったい、本当に部内秘に「しなければならない」ものがどれだけあるでしょうか。財務情報ですら、組織内に対してはオープンであるべきです (open-book management)。
以下では、誰でも見れるけれど、ログインユーザだけが編集できるようにしてみます。詳しくは Wikiサイトの HelpOnAccessControlLists ページを参照してください。
MoinMoinのアクセス制御は、(1) どのような権限を (2) どのユーザ(もしくはグループ)に与えるか、という風にして設定していきます。
wikiconfig.py でサイト共通の設定を決め、さらにページ単位で修正することができます。
まず権限は次のものがあります。
- read - 読み取り
- write - 書き込み
- delete - ページの削除
- revert - 古い内容(リビジョン)へ巻き戻す
- admin - ページのアクセス制御を変更
加えて、read, write, deleteのすべてを持つユーザ(グループ)は、ページを rename できます。
権限を付与できる対象は、
- ユーザ名 - 個々のユーザ
- グループ名 - グループに属するユーザ。グループ名は SomeGroup の形。
- Trusted - 特殊グループ。HTTP-Basic認証で認証されたユーザ。
- Known - 特殊グループ。ログインしているユーザ
- All - 特殊グループ。すべての利用者(ログインユーザまたはゲスト)
これらを組み合わせて設定を書きます。
wikiconfig.py に書く設定は、サイト全体に適用されます。
- acl_rights_before
- デフォルト u""
すべての設定に優先して適用されます。サイト全体の管理者や編集者を定めるのに使います。
- acl_rights_default
- デフォルト u"Trusted:read,write,delete,revert Known:read,write,delete,revert All:read,write"
各ページ独自のアクセス制御の設定がないときに使われます。
- acl_rights_after
- デフォルト u""
acl_rights_before, 各ページの設定(またはacl_rights_default)の後に適用されます。備忘用。
設定する値は次の形です。
ユーザ名,...:権限,... ユーザ名,...:権限
空白文字で区切るので、カンマの前後、コロンの前後に空白を挟んではいけません。
バックアップ
MoinMoinはすべてのデータをファイルに保存するので、単純にそれを固めればいいです。
TODO: 手順