trac設定 再び

ようやく、tracの設定まできました。最初の頃は気軽に考えてたけど、こんなに時間がかかるとは思いもしなかった。しかし、ついに最終章!無事うごくのか!?

trac-adminで設定しているところから、随分大回りして戻ってきました。引数にプロジェクトのディレクトリ(あらかじめ作っておく)を指定して、initenvで初期化。

# trac-admin /Users/www/trac/project initenv

いろいろ聞かれますが、大体デフォルトでOK。設定終わると、グワーっとテンプレートファイルがプロジェクトにコピーされます。

Congratulations!

と、出ればインストール完了。tracに付属でついてる簡易Webサーバーで動作確認。

# tracd --port 8000 /Users/www/trac/project

http://myhost.mydomain:8000/ なんかにアクセスすると表示されます。

が、、、 なんかエラーが出てる。。。 does not appear to be a Subversion repository. とか言われてるな。設定ファイル ${project_dir}/conf/trac.ini を確認してみても repository_dir はあってる。http://XXXX/svn/project でちゃんとアクセスできるし。

散々悩んだあげく、解決しました!repository_dir はほんとにsvn リポジトリのリアルパスなんですね。てっきりアクセスするリポジトリパスだとばかり思ってました・・・。それを直すとあっさり起動。

その間 svn の認証設定がいけないのかと AuthzSVNAccessFile を追加したりしてみましたが、全然関係なかったですね・・・

さて、日本語パッチでも当てようかと思ったら、日本語版って、パッチじゃなくてフルセットなんですね。。。インタアクトのページから持ってきて、もう一回 trac-admin を実行。無事 日本語版 動きました。

あとは、これを Apache で動かすと本日のミッション終了。Apache で動かすのは、cgiで動かすのと、mod_python で動かす2通りあるらしい。調べみると、mod_python はインストールされていないが port で簡単にインストールできそうだ(懲りてない)。

# port install mod_python

難なく終了。以下 httpd.conf 設定ファイル例

        #############################################################
        # Trac用セッティング
        #############################################################
        LoadModule python_module modules/mod_python.so
        
            SetHandler mod_python
            PythonInterpreter main_interpreter
            PythonHandler trac.web.modpython_frontend
            PythonOption TracEnv /Users/www/trac
            PythonOption TracUriRoot /trac
            AuthType Basic
            AuthName  "Please Enter Your Password"
            AuthUserFile /Users/www/.htpasswd
            Require valid-user
            Order allow,deny
            Allow from all
        

apacheを再起動してアクセスしてみると、X-MAC-JAPANESE がなんら、というエラーメッセージ。これはよく出るらしい。というか、MAC OS X 10.4 + python 2.5.1 ではどうしても出てしまうとか。(参考:http://weblog.metareal.org/category/trac/
しかし、コンパイルし直すのもめんどくさいので、とりあえず強制的に utf-8 を返すように修正。(参考:http://d.hatena.ne.jp/kazuki_t/20061120/1164030702

これで無事 すべて解決!
やっと終わり!!