自宅でもtrac導入

hardyにアップグレードしたついでにtracも入れた。
svnは既に立ててあるのでtrac-admin実行時に指定してやるだけ。

sudo aptitude install trac
sudo aptitude install libapache2-mod-fastcgi
trac-admin /path/to/mytrac initenv
chown www-data.www-data /path/to/mytrac/db
sudo cp /usr/share/trac/cgi-bin/trac.fcgi /usr/lib/cgi-bin

tracのプロジェクトディレクトリとりあえず認識させるため、/etc/apache2/mod-available/fastcgi.conf に以下の設定追加。

<IfModule mod_fastcgi.c>
  AddHandler fastcgi-script .fcgi
  #FastCgiWrapper /usr/lib/apache2/suexec
  FastCgiIpcDir /var/lib/apache2/fastcgi
  FastCgiConfig -initial-env TRAC_ENV=/path/to/project/
</IfModule>

しかしこの設定だと複数プロジェクトにも対応できないし、第一設定として美しくない。あとで変える。

追記: いろいろ直して認証追加まで

上記の fastcgi.conf の設定はやはり必要なかった。
trac 用の設定は /etc/apache2/sites-available/trac だけにまとめて書く方がずっとスマートだ。

ScriptAlias /trac /usr/share/trac/cgi-bin/trac.fcgi

<Location "/trac">
  SetEnv TRAC_ENV_PARENT_DIR "/path/to/project/parent/dir"
</Location>

<LocationMatch "/trac/[^/]+/login">
  AuthType Basic  AuthName "Trac"
  AuthUserFile /path/to/trac.htpasswd
  Require valid-user
</LocationMatch>

そして認証用の .htpasswd ファイルを作り設定を反映する

sudo htpasswd -c /path/to/trac.htpasswd
sudo a2ensite trac
sudo /etc/init.d/apache2 reload

これで .htpasswd に登録したユーザでログインできるようになる。

さらに追記: 認可を設定する

とりあえず自分は何でもできるようにし、ログインしていない人は見るだけにする。

sudo trac-admin trac/study permission add smotokezuru TRAC_ADMIN
sudo trac-admin trac/study permission remove anonymous WIKI_CREATE
sudo trac-admin trac/study permission remove anonymous WIKI_MODIFY
sudo trac-admin trac/study permission remove anonymous TICKET_CREATE
sudo trac-admin trac/study permission remove anonymous TICKET_MODIFY

しかし trac月 で出てきたような管理メニューはログインしても出ない。何かプラグインが必要なのだろうか。