= Trac と mod_python =
Trac 0.7.1以降のバージョンでは[http://www.modpython.org/ mod_python]がサポートされています。[http://www.modpython.org/ mod_python]はTracのレスポンスタイムを飛躍的に向上し、tracd/mod_proxyでは使用できない多くのApache機能を使えるようにします。
== シンプルなコンフィギュレーション ==
標準的なTrac CGI/Apacheのセットアップは次のようになっています:
{{{
ScriptAlias /projects/myproject /path/to/python/share/trac/cgi-bin/trac.cgi
SetEnv TRAC_ENV /var/trac/myproject
}}}
上記に対応するmod_pythonのセットアップは次のようになります:
{{{
SetHandler mod_python
PythonHandler trac.ModPythonHandler
PythonOption TracUriRoot "/projects/myproject"
PythonOption TracEnv /var/trac/myproject
}}}
''TracUriRoot''オプションは不要な場合もありますのでご注意ください。まずは''TracUriRoot''オプションを付けずに試し、Tracが正しくURLを生成できないようであれば追加するようにしてください。
== マルチプロジェクトのセットアップ ==
Tracのmod_pythonハンドラはサブバージョンの {{{SvnParentPath}}} とよく似た {{{TracEnvParentDir}}} というコンフィギュレーションオプションをサポートしています。
{{{
SetHandler mod_python
PythonHandler trac.ModPythonHandler
PythonOption TracUriRoot /projects
PythonOption TracEnvParentDir "/var/trac"
}}}
{{{/projects}}} のURLをリクエストすると、{{{TracEnvParentDir}}}として設定したディレクトリ配下のサブディレクトリ一覧(現行では非常にシンプルな)が表示されます。その一覧から何かプロジェクトを選択するとそれに該当するTracのインスタンスを開くことができます。設定したディレクトリの配下には必ず現在インストールされているバージョンにマッチするTrac Environmentのディレクトリのみが置かれているようにしてください。プロジェクトリストの生成前にはそのようなチェックがかからないからです。
=== ユーザ認証の追加 ===
ユーザ認証の追加はどちらの場合も簡単です。次に例を示します:
{{{
AuthType Basic
AuthName "Trac"
AuthUserFile /var/www/passwd
Require valid-user
}}}
=== Win32 Issues ===
Windows 上で mod_python から Trac を使用すると、ファイル添付機能が使用できません。
これについては(簡単な)回避策があります。
ticket[http://projects.edgewall.com/trac/ticket/554 #554]に添付されているパッチを適用してください。
----
参考 TracGuide, TracInstall, TracMultipleProjects