mod_wsgiでTraMを使う方法

複数のTracをまとめる際に便利なTraMを使おうと思ったものの、参考サイトの設定ではmod_pythonが必須かつmod_python終了のお知らせが出回っているという非常に困った状態だったのですが、FastCGIを使った例があったので、ここを参考にmod_wsgiでTraMを動かす設定を試してみたのでメモ書きを。

mod_wsgiで単独のtracを指定するwsgiファイルはこんなかんじ

Apacheの設定ファイルで指定するwsgiファイルでTrac単品を実行する場合はこんな感じに設定するみたいです。

import os

os.environ['TRAC_ENV'] = '[TRACの設置パス]'
os.environ['PYTHON_EGG_CACHE'] = '[TRACのキャッシュパス]'

import trac.web.main
application = trac.web.main.dispatch_request
TraMを使う場合はこんな感じ

TRAC_ENV_PARENT_DIRで親ディレクトリを指定して、dispatch_requestをTramのものを呼び出すだけですな。

import os

os.environ['TRAC_ENV_PARENT_DIR'] = '[TRACを設置した親ディレクトリ]'
os.environ['PYTHON_EGG_CACHE'] = '[TRACのキャッシュパス]'

from tram.main import dispatch_request
application = dispatch_request

あとは通常のTraMの設定としてやれば普通に使えました。mod_pythonとか使うより楽ちんな気がするのでおすすめです。

参考サイト