tracdでは動くけど、apache2.2+mod_python3.3.1(python2.5)で動いてくれない。
自宅のMacBookProだと簡単に動いてくれたのですがね。どちらも、MacPorts頼りですが、微妙に経緯が違うのかもしれません。
問題は、subversionのpythonバインディング(swigのやつ)が認識(?)できていない云々なところらしいです。apache(mod_python)からでなければ、importも出来ているのですがね。
とりあえず、諦めてみましたが、なんとも不完全燃焼。仕事に必要なわけではないのでかまわないのですが、なんともやるせない。
そんなわけで、自宅のMacBookProでapache2.2+mod_wsgiなtracが動いたので、それを試す事にします。
以下、余談。
wsgiスクリプトへのアクセス権限に詰まりましたが、おおむねすんなりと動いた感じです。
以下、mod_wsgiのインストール。
InstallationOnMacOSX - modwsgi - Google Code
MacPortsに関して記述がありましたが、よくわかりません。というか、動いた後に読んだので、気にしません。動けばいいんです。
$ cd ~/local/src
$ svn checkout http://modwsgi.googlecode.com/svn/trunk/ modwsgi
$ cd modwsgi/mod_wsgi
$ ./configure --with-apxs=/opt/local/apache2/bin/apxs --with-python=/opt/local/bin/python2.5
$ make && sudo make install
以下、mod_wsgiのロード。/opt/local/apache2/conf/httpd.confに記述。
LoadModule wsgi_module modules/mod_wsgi.so
以下、trac用のバーチャルホスト設定の抜粋。mod_wsgi用に必要な部分だけ。ServerNameとログ設定をのぞいただけです。DocumentRootの設定もしてません。
...
<Directory /Users/koshigoe/c/lib/python>
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias / /Users/koshigoe/c/lib/python/trac.wsgi
...
サーバのルート以下でないと、deniedなんでしたっけ?その辺曖昧ですが、allowの設定をしないと403エラーが出ました。
以下、wsgiスクリプト。
IntegrationWithTrac - modwsgi - Google Code
import os
os.environ['TRAC_ENV'] = '/Users/koshigoe/local/var/trac/myproject'
import trac.web.main
application = trac.web.main.dispatch_request
こんな感じで、osx(MacBookPro)でapache2.2+mod_wsgi(python2.5)+trac0.10.4が動いてくれる事を確認しました。細かいところで動かないのかもしれませんが、それは後回し。
はぁ、家だと期待に答えてくれるんだよなぁ、mac。会社のはなんだろう。家のmacに嫉妬してるのかしら?
結局、mod_wsgiを使っても同じエラー。apacheとpythonの間で何かをミスっている模様です。とりあえず、時間もないし必要な分けでもないので棚上げ。