Trac on Windows

最初はAll-In-One Tracで行こうと思っていたのだが、これはSubversion/Apacheも同時にインストールされるのね。それだとちょっと困るので、面倒だけど自分でTracのみインストールしてみる。

参考にしたところ

インストールしたもの

内容ファイル名備考
WindowsXP Pro. SP2インストール済み 
Subversion1.3.0をインストール済み 
Apache2.0.55をインストール済み 
PythonPython-2.3.5.exe2.4はWindowsに対応していない
Subversion Python Bindingssvn-win32-1.3.0_py.zipSubversionのversionに合うもの
docutilsdocutils-0.3.9.tar.gz 
pySQLLitepysqlite-1.1.6.win32-py2.3.exe 
ClearSilverclearsilver-0.9.14.win32-py2.3.exe 
日本語版Tractrac-0.9.5-ja-1.zip 
JapaneseCodecsJapaneseCodecs-1.4.10.win32-py2.3.exeoption

本家のTracはこちら→trac-0.9.5.win32.exeなんだけど、メニューを含めて日本語で使いたい場合は上記日本語版Tracを選択。この日本語版には本家オリジナル版の全ファイルが含まれている。

インストール手順

1. Python

すべてデフォルト。インストールディレクトリはc:\Python23。これをPATHへ追加しておく。

2. Subversion Python Bindings

解凍するとフォルダlibsvnとフォルダsvnができるのでc:\Python23\Lib\site-packagesへコピー。

3. docutils

拡張子はtar.gzなので適宜ツールで解凍。私はCygwinでtar zxvf。解凍されてできたディレクトリにsetup.pyというのがある。そこへcdしてから

>python setup.py install

これでc:\Python23\Lib\site-packagesにフォルダdocutilsが作られる。

4. pySQLLite

ダブルクリックで起動して[次]を押していくのみ。c:\Python23\Lib\site-packagesにフォルダsqliteなどが作られる。

5. ClearSilver

これもダブルクリックで起動して[次]を押していくのみ。c:\Python23\Lib\site-packagesにneo_cgi.pydが作られる。

6. 日本語版Trac

解凍したディレクトリにcdする。次のコマンドでインストール。

>python setup.py install
7. CGIのコピー

C:\Python23\share\trac\cgi-bin\trac.cgiを%Apacheインストールディレクトリ%\cgi-binへコピー。そしてこの(コピーした)trac.cgiの1行目をPythonをインストールしたディレクトリに変更。

#!C:\Python23\python.exe
8. Trac DBの構成

Trac用のDBを作成するのだが、今ひとつというか、まったくその作法がわからないので適当に(汗。とりあえず今回はc:\trac\hogehoge.dbをTrac DBにする。実行手順はC:\Python23\Scriptsへcdして

C:\Python23\Scripts>python trac-admin c:/trac/hogehoge.db
Welcome to trac-admin 0.9.5
Interactive Trac adminstration console.
Copyright (c) 2003-2006 Edgewall Software

Type:  '?' or 'help' for help on commands.

Trac [c:\trachogehoge.db]> initenv
Creating a new Trac environment at c:\trac\hogehoge.db

Trac will first ask a few questions about your environment
in order to initalize and prepare the project database.

 Please enter the name of your project.
 This name will be used in page titles and descriptions.

Project Name [My Project]> Proj.hogehoge

 Please specify the connection string for the database to use.
 By default, a local SQLite database is created in the environment
 directory. It is also possible to use an already existing
 PostgreSQL database (check the Trac documentation for the exact
 connection string syntax).

Database connection string [sqlite:db/trac.db]> sqlite:db/hogehoge.db

 Please specify the absolute path to the project Subversion repository.
 Repository must be local, and trac-admin requires read+write
 permission to initialize the Trac database.

Path to repository [/var/svn/test]> c:/svnrepos/trunk //←Subversionリポジトリ

 Please enter location of Trac page templates.
 Default is the location of the site-wide templates installed with Trac.

Templates directory [C:\Python23\share\trac\templates]>

Creating and Initializing Project
 ....

Customization
 ...
---------------------------------------------------------------------
Project environment for 'hogehoge' created.
 ...

Congratulations!

Trac [c:\trac\hogehoge.db]>

ユーザadminに管理者権限を与える。

Trac [c:\trac\hogehoge.db]> permission add admin TRAC_ADMIN
9. ApacheTracの設定を追加

httpd.confの最後に以下の内容を追加。

# TRAC
Alias /trac "C:/Python23/share/trac/htdocs"

<Location "/cgi-bin/trac.cgi">
    SetEnv TRAC_ENV "c:\trac\hogehoge.db"
</Location>

<Location "/cgi-bin/trac.cgi/login">
    AuthType Basic
    AuthName "Project"
    AuthUserFile D:/svn/.htaccess
    Require valid-user
</Location>

<Directory "C:/Python23/share/trac/htdocs">
  Options Indexes MultiViews
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>

そして以下の行を有効(行頭の#を削る)にする。

AddHandler cgi-script .cgi
10. Trac起動

Apacheを再起動して、ブラウザで

http://[hostname]:80/cgi-bin/trac.cgi

をアクセスすると、...おー、トップページが表示された。もちろん日本語で。でもBrowse Sourceするとコメントなどが化け化けだ。ぐぐってみるとJapaneseCodecsが必要な感じがしたので入れてみたけど状況変わらず。よくよく調べてみるとWebブラウザにソースを表示させるときは、trac.iniの方へリポジトリ内のファイルのcharsetを指定するらしい。具体的にはc:\trac\hogehoge.db\conf\trac.iniを以下のように変更する。

default_charset = iso-8859-15
↓
default_charset = MS932

これでApacheを再起動したらOK。diffでも文字化けはしなかった。

追記:JapaneseCodecsがインストールされていないとMS932とかshift_jisを指定しても"Unknown encoding"となる。ので、JapaneseCodecsは入れておいたほうが良いのかもしれない。

とりあえず今日はここまで。複数のプロジェクトをハンドリングするための設定とか、まだいろいろ調べなきゃならんのだが、Tracの使い方を覚えるのが先だな(汗。