開店休業中

trac

最終更新:

okumura

- view
メンバー限定 登録/ログイン

先にGenshiは入れておく

Genshiのダウンロードページをみてみると、現状Leopard版はi386しかありません。
i386版で動かしても特に問題は無いようなのですが、Core2Duoなマシンの場合x86_64版を探しに行くのかTracのsetup.pyで途中でeggファイルが無いと言われてこけてしまいます。

で、Genshiは先に入れておくとそいつを使うので、Tracのsetup.pyを走らせる前に別途入れておきます。

GenshiのダウンロードページのSource Tarballsの所から適当な形式のファイルを取ってきます。
今回、私はzipを取りましたが、たぶんtar.bz2の方が小さかったかも…

で、こいつを解凍してできたフォルダの中に入り、

python setup.py install

とすればOKです。

Tracのインストール

Tracの日本語版はインタアクト株式会社さんの公開資料(Trac)の一番下のダウンロードの所から落としてきました。

こいつを解凍して中に入り、

./setup.py install

とすれば入ります。Tracを入れた後にGenshiを探し出して落ちるのですが、とりあえずTracが入れ終わっていればOKぽいです。

trac環境の作成

apacheのfast_cgiやmod_pythonで動かす場合、tracの環境ディレクトリはwwwユーザが扱えないといけません。
なので、trac環境ディレクトリのオーナーはwwwユーザにします。

まずは、tracの環境フォルダの作成。ここでは/var/tracroot以下に作成する事とします。以下適宜読み替えてください。
これもLeopardからは/homeが使えないので要注意です。

sudo mkdir /var/tracroot
cd /var/tracroot
sudo chown www:www .

後は、プロジェクトごとにwwwユーザでtracroot内にtrac環境を作ればOKです。
「<プロジェクト用ディレクトリ>」となっているところは適宜読み替えてください。
今回毎回sudoでwwwになってますが、suでwwwになって作業をして行った方が楽かもしれません。

sudo -u www mkdir <プロジェクト用ディレクトリ>
sudo -u www trac-admin <プロジェクト用ディレクトリ> initenv

trac環境作成用の対話UIが起動します。
質問に答えて行くだけで、デフォルトままで良いところは何も入れずにreturnでかまいません。
以下> までが質問、その後ろに入力内容を記述して行きます。

Project Name [My Project]> <プロジェクト名>

「<プロジェクト名>」は適宜指定してください。

Database connection string [sqlite:db/trac.db]> 
Repository type [svn]> 

この2つは基本的にデフォルトままでかまいません。
svn以外に対応するのはいつになるんでしょうねー…

Path to repository [/path/to/repos]> <svnリポジトリのパス>

これはsvnリポジトリへのパスを指定します。適宜読み替えてください。

以上で設定が終わり、いろいろと読み込みやら何やらが走って環境が作成されます。

ここで一度

sudo -u www tracd -p 8080 -e /var/tracroot

として動作を確認した方が良いでしょう。

apacheの設定

tracdで動かしても良いのですが、せっかくなのでapacheをかます事にしました。
細かいアクセス制御やsslなどはapacheをかませた方がやりやすいです。が、tracdで動かすのが一番高速らしいので、LAN内のみで使う分にはtracdで良いかもしれません。

apacheと連携させる動かし方としては、早い方からmod_python, fast_cgi, cgiとなるようです。
それぞれtrac環境以下のwiki/TracModPython、wiki/TracFastCgi、wiki/TracCgiに説明があるので、tracdで起動してマニュアルを読みつつ進めると良いかもしれません。

fast_cgiで動かす場合

可能ならmod_pythonで行きたいのですが、mod_pythonがデフォルトではi386でビルドされてしまうため、ちょっとハマるようです。
ですので、まずはfast_cgiで動かします。

apacheにはmod_fcgiとmod_fastcgiの2種類があるそうなのですが、mod_fastcgiはLoepardにもとから入ってるのでこれを使います。

trac.confの記述

Mac os Xデフォルトのapacheの設定では/etc/apache2/other/配下の*.confが自動で取り込まれるので、ここにtrac.confを作成します。

sudo vi /etc/apache2/other/trac.conf 

内容は以下の通り

<IfModule mod_fastcgi.c>
    AddHandler fastcgi-script .fcgi
</IfModule>
LoadModule fastcgi_module libexec/apache2/mod_fastcgi.so

<Directory "/usr/local/Trac-0.11.4.ja1/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

ScriptAlias /trac /usr/local/Trac-0.11.4.ja1/cgi-bin/trac.fcgi

<Location "/trac">
    SetEnv TRAC_ENV_PARENT_DIR "/var/tracroot"
</Location>

<LocationMatch "/trac/[^/]+/login">
  AuthType Digest
  AuthName "develop"
  AuthDigestDomain /trac
  AuthUserFile /var/svnroot/passwd
  Require valid-user
</LocationMatch>

DirectoryディレクティブやScriptAliasのパスは適宜入れたTracのパスに、
Locationディレクティブの中のTRAC_ENV_PARENT_DIRはtrac環境をたてたディレクトリに、
LocationMatchディレクティブの中のAuthUserFileは認証用のpasswdファイルのパスに、それぞれ読み替えてください。

eggキャッシュディレクトリの作成

これでapacheの設定ができました。ここで起動してみます。
apacheの起動はシステム環境設定の「共有」でweb共有のチェックを入れる(入れ直す)のが楽です。
apacheは起動するのですが、http://localhost/tracにアクセスするとエラーが発生します。
ただ、pythonのエラーが出るようになるので、ここから先はエラーの内容を見ながら直して行くのが楽です。
ここから先は、基本的に問題に対応した後apacheを再起動しなくてもリロードすれば解消します。

さて、エラーの内容を見てみると、/Library/WebServer/.python-eggsにeggファイルを展開したいのに書き込めないようです。
なので、この.python-eggsを作ります。

sudo mkdir /Library/WebServer/.python-eggs
sudo chown www:www /Library/WebServer/.python-eggs

これで動くようになりました。

タグ:

Mac 開発 環境作成
目安箱バナー