MoinMoin 1.9.0 on Windows with mod_wsgi

メリークリスマス!

MoinMoin 1.8.4 on Windows with mod_python からのアップデート作業です。

材料

前回は mod_python で導入しましたが、なんか対応しなくなったっぽいので推奨らしい WSGI で動かす事にします。windows 環境の mod_python だと python 2.5 縛りっぽかったので 2.5 でしたが、今度は python 2.6 が必要みたいなので 2.6 を導入します。

構成

OS Windows 7 x64
Apache C:\Program Files (x86)\Apache Software Foundation\Apache2.2
Python C:\Python26
DocumentRoot E:\inetpub\wwwroot
MoinMoin インスタンス E:\inetpub\app\Moin\etc
MoinMoin URL http://localhost/moin/

MoinMoin インストール

前のバージョン(1.8.4)のファイルが残ってると後でエラーを吐くので、残ってる場合は掃除しましょう。
(C:\Python26\Lib\site-packages\MoinMoin 以下)

wget http://static.moinmo.in/files/moin-1.9.0.tar.gz
gzip -dc moin-1.9.0.tar.gz | tar xvf -
cd moin-1.9.0
C:\Python26\python setup.py install

MoinMoin インスタンス作成(更新)

cd /d C:\Python26\share\moin
xcopy data E:\inetpub\app\Moin\etc\data
xcopy underlay E:\inetpub\app\Moin\etc\underlay
copy config\*.* E:\inetpub\app\Moin\etc\*.*
copy server\*.* E:\inetpub\app\Moin\etc\*.*

MoinMoin 設定

E:\inetpub\app\Moin\etc\moin.wsgi

パスを通してるなら必要ないが通していないのならば要設定とのこと。

# a1) Path of the directory where the MoinMoin code package is located.
sys.path.insert(0, 'C:/Python26/Lib/site-packages')
# a2) Path of the directory where wikiconfig.py / farmconfig.py is located.
sys.path.insert(0, 'E:/inetpub/app/Moin/etc')

設定ファイル: 構造が 1.8.4 とは変わってるので横着せずに書き直すべし。

E:\inetpub\app\Moin\etc\wikiconfig.py
  • 静的ファイルの接頭パス: /moin_static
  • インデックスページの設定: FrontPage
  • スーパーユーザーの指定: hoge
  • ユーザー hoge に全権限を与える: acl_rights_before 〜
  • ログインユーザーに編集を認め、他は読み取りのみ: acl_rights_default 〜
  • ナビゲートにいろいろ追加: navi_bar 〜
  • テーマの設定: modernized
  • 言語設定: ja
  • 新規アカウント作成の禁止: actions_excluded 〜
    url_prefix_static = '/moin_static'
    page_front_page = u"FrontPage"
    superuser = [u"hoge", ]
    acl_rights_before = u"hoge:read,write,delete,revert,admin"
    acl_rights_default = u"Known:read,write,delete,revert All:read"
    navi_bar = [
        u'%(page_front_page)s',
        u'RecentChanges',
        u'FindPage',
        u'HelpContents',
        u'TitleIndex',
        u'HelpOnMoinWikiSyntax'
    ]
    theme_default = 'modernized'
    language_default = 'ja'
    actions_excluded = multiconfig.DefaultConfig.actions_excluded + ['newaccount']

Apache 設定

mod_wsgi-win32-ap22py26-3.0.so を Apache2.2\modules に放り込む。

conf/httpd.conf

WSGI 設定が楽ちんですね。

#WSGI モジュールロード
LoadModule wsgi_module modules/mod_wsgi-win32-ap22py26-3.0.so

##
## MoinMoin with mod_wsgi
##
WSGIScriptAlias /moin E:/inetpub/app/Moin/etc/moin.wsgi
Alias /moin_static "C:\Python26\Lib\site-packages\MoinMoin\web\static\htdocs"

これでアップデートと mod_wsgi への移行が完了しました。

おまけ

DocBook 書き出しの為に PyXML をインストールする。

Browse Python/XML Files on SourceForge.net から PyXML-0.8.4.tar.gz をダウンロード。

gzip -dc PyXML-0.8.4.tar.gz | tar xvf -
cd PyXML-0.8.4
C:\Python26\python setup.py install

VS2008 SP1 でコンパイルが通りました。
以前、インストールを試みた時にはエラーが出て PyXML instllation failed Fraxinus/ウェブリブログ を参考に MinGW でやったんだけど。まぁ動いてるのでよしとする。

DocBook に書き出して Apache FOP で PDF にしてウマー。便利だなぁ。