at posts/single.html

Subversion環境 (2)

先日構築した Subversion 環境でも、一応 Web 経由でリポジトリの中身を見ることができるようになった。

でも、リポジトリだけじゃなくて、そのソフトの解説用のページも欲しいと思い、最近人気の trac を入れることにした。 Trac は、Subversion + Wiki + バグ管理システムのようなもの。 Trac Installation Guideを参考に作業を進める。

インストール

ports から trac をインストール。この時点では設定は不要。

$ cd /usr/ports/www/trac
$ sudo make
$ sudo make install

プロジェクトの作成

まずは Subversion リポジトリの作成から。 すでにリポジトリがある場合は不要。

$ svnadmin create /usr/local/var/svn/flickr_plugin
$ svn import file:////usr/local/var/svn/flickr_plugin/trunk

次に、 Trac 用のプロジェクトディレクトリを作る。 ここに、 Wiki や バグ管理 (Ticket) のデータが保存される。

$ sudo mkdir /usr/local/var/trac
$ sudo chown www:www /usr/local/var/trac
$ trac-admin /usr/local/var/trac/flickr_plugin initenv

このとき、リポジトリの場所を尋ねられるので、前述の svnadmin create で指定した場所 (/usr/local/var/svn/flickr_plugin) を入力する。

Web サーバの設定

Trac Installation Guideを見ると、Apache と lighttpd のどちらでも簡単に動くみたい。 でも、僕の環境だとなぜか lighttpd 上では動かなかった (CGIが Internal Server Errorになる) ので、Apache2 で動かすことにする。

公開するディレクトリは、 /usr/local/share/trac/ 以下の htdocs/ と cgi-bin/ の2つ。 htdocs/ には画像ファイルやスタイルシートが含まれていて、 cgi-bin/ には trac を動かすための CGI (trac.cgi) が入っている。 環境変数 TRAC_ENV を使って、trac.cgi に先ほど作成したプロジェクトディレクトリの場所を教える。

Apache2 の設定ファイルに、以下のように追記する。

Alias /trac/ "/usr/local/share/trac/htdocs/"
<Directory "/usr/local/share/trac/cgi-bin/">
  AddHandler cgi-script .cgi
  DirectoryIndex trac.cgi
  Options ExecCGI
</Directory>

Alias /flickr_plugin/ "/usr/local/share/trac/cgi-bin/"
<Location "/flickr_plugin/">
  SetEnv TRAC_ENV "/usr/local/var/trac/flickr_plugin"
</Location>

Directory ディレクティブを使って cgi-bin/ ディレクトリの設定を分けておくことで、 将来的にプロジェクトが複数になった場合にも簡単に対応できる(Locationディレクティブを増やしていけばいい)。 少し複雑だけど、mod_rewrite を使って拡張性を持たせる方法もあるみたい。

ここまでできたら Apache2 を再起動して、 Webブラウザで http://example.com/flickr_plugin/ に接続する。 trac のトップページが表示されれば、設定成功。

試しに Flickr プラグインのページを作成。

関連する日記