すがブロ

sugamasaoのhatenablogだよ

Trac が CGI で動いたよ\(^o^)/

CGI動作

結論から書くと、 trac.cgi はインストールされていなかった。
find の使い方が悪いのかと色々調べたものの、結局見つからなかったし、他のサイトでも trac.cgi が無いという話が書いてあった。
なので、以下から trac.cgi を取得。
http://trac.edgewall.org/browser/trunk/cgi-bin
そして、イマイチどこに置くとしっくりくるかわからず小一時間悩んで、以下に置く事にした。
* /www/trac/cgi-bin
で、 apache は www ユーザで動作するので、オーナーは以下のようにした。

chown -R www:user /www/trac

user ってのは今作業してるユーザね。別に他意は無いのだけど、ちょっとした編集とかをしたいって時にも sudo するのは面倒なので。
このあと、/etc/apache2/trac_conf ディレクトリを作成して、 trac 用の設定ファイルを作成する。

sudo mkdir /etc/apache2/trac_conf
sudo vi /etc/apache2/trac_conf/httpd-trac.conf

以下には後述するけど、ユーザ認証についても記載済み

ScriptAlias /trac "/www/trac/cgi-bin/trac.cgi"
<Location "/trac">
    SetEnv TRAC_ENV "/Users/user/trac/project"
</Location>

<Directory /www/trac/cgi-bin>
    Options ExecCGI
    Order Allow,deny
    Allow from all
</Directory>

# ここはBasic認証部分
<Location "/trac/login">
  AuthType Basic
  AuthName "Trac"
  AuthUserFile /path/htpasswd/.htpasswd # パスワードファイルへのパスを記載
  Require valid-user
</Location>

追記:このあと、 httpd.conf から httpd-trac.conf を読み込む為に、以下の一行を追記する。

Include /private/etc/apache2/trac_conf/*.conf

Basic 認証

上記で書いたパスにファイルを作成する。
パスワード及びユーザを作成するには htpasswd コマンドを利用する。コマンドに引数を与える事でファイルの新規作成をすることもできるけど、調べるのが面倒だったので touch でファイルだけ作ってから以下のコマンドを実行した。

sudo htpasswd ./.htpasswd ユーザ名

これでパスワード情報も作成することができた。あ、もちろん、このファイルも apache(wwwユーザ) から見えるような権限にしておく必要がある。
これで trac が動くよ!>< リポジトリブラウザがクールですね!

で、認証も付けれるようになったんだけど

まだ解決しなくてはいけないことがある。

  1. trac0.11 からは webadmin が同梱されていると聞いたんだけど、どうもそれっぽいメニューが見当たらない*1
  2. わかっていたものの、 CGI はやはり遅い。何か別の方法(mod_pythonとか)を考えないとね
  3. SVNapache の連携。これって dav_svn モジュールとかが必要だった気がするんだけど、これってどうやって用意すんだ。 Windows の時は勝手にコピーされてた気がするんだが。

*1:admin権限的なものって別途付加する必要があるんだっけ?