Tracをインストールした

ちょいとプライベートなプロジェクトで管理ツールがほしかったので、Trac自宅サーバにインストールしたのでメモなどを書き残す。
バージョンは 0.11rc1 かな。OS は Ubuntu8.04、Apache2+mod_wsgi は導入済み。
インストールのドキュメントが詳しい。

いきなりだがsetuptoolsが入ってなかった

てっきり入ってると思ってたのだけど、setuptools(easy_install)が入ってなかった。easy_installは最新バージョンを使いたかったので、apt-getせずにez_setup.pyをwgetで落としてきて実行、インストール。

python-svnじゃなくてpython-subversion

apt で python-svn を入れると "import pysvn" できるけど、Tracが使うのは python-subversion の "import svn" らしい。

sudo apt-get install python-subversion

紛らわしいね。

easy_installでTracを入れる

setuptoolsは0.6以上が必要。

sudo easy_install Trac==0.11rc1

インストールはこれでいいらしい。"trac-admin" コマンドが使えるようになっている。

プロジェクトの環境を作る

どこでもいいのだが、

trac-admin /path/to/myproject initenv

とすると、リポジトリの場所とかいろいろ聞かれて、全部入力すると "/path/to/myproject" にプロジェクト環境ができあがる。

trac.wsgiを作る

起動確認すらせずにwsgiスクリプトを書く。

import os
os.environ['TRAC_ENV'] = '/path/to/myproject'
from trac.web.main import dispatch_request as application

3行だけ。簡単。

Apachewsgiスクリプトを設定する

Apacheでmod_wsgiのWSGIScriptAliasを設定する。

WSGIScriptAlias / /path/to/myproject/trac.wsgi

"apache2ctl -t"でシンタックスを確認、Apacheを再起動しておしまい。
ここから追記

SVNリポジトリと同期する

resyncコマンドでSVNリポジトリと同期をとれる。

trac-admin /path/to/myproject resync

SVNにコミットしたタイミングでresyncを実行するには、このコマンドをSVNリポジトリの "hooks/post-commit" に追記する。

HTTPユーザ認証を設定する

Tracのユーザ認証はHTTPの認証を使う。Apacheなら htpasswd コマンドでパスワードファイルを作成して、Tracの "/login" に認証を設定する。

ユーザ権限の追加

Wikiの編集などを行うには、ユーザに権限を与えなければいけない。
権限の状態は、

trac-admin permission list

で確認できる。
権限の追加は、

trac-admin permission add ユーザ名 権限

となる。
trac-adminコマンドを引数なしで実行すれば、コマンド一覧が表示されるのでそちらも参考にする。

文字コードの変更

デフォルトの文字コードutf-8じゃなかったりするので、日本語が化けて表示される。
文字コードは、 "/path/to/myproject/conf/trac.ini" のdefault_charsetで変更できる。

default_charset = utf-8