以前 trac をインストールしたときに、mod_pythonがapache2.2に対応していなくて動かなかったが、いつのまにか mod_python 3.2.10 が出ていたので、インストールして試してみた。
httpd.conf は以下のような感じ。
tracの静的コンテンツは、/trac-static でアクセスできるようになるので、tracのプロジェクト毎の設定ファイル(trac.ini)の[trac]セクションに以下を追加しておく。
うちの場合、/var/tracの下の各プロジェクトのsvnリポジトリは、/var/svnの下に同名で作成することにしている。そして、dav_svn経由で /svn からアクセスできるようにしている。
その部分に間する設定は以下のような感じ。
dav_svn特有なのは、AuthzSVNAccessFileディレクティブ。このファイルには、以下のような内容が書いてある。
tracやsubversionで、プロジェクトやリポジトリの一覧を表示するかどうかは、利便性とセキュリティのポリシーを天秤にかけるべきだ。
うちの場合は、tracのプロジェクトの一覧は見れるけど、リポジトリの一覧は見えないと言うちぐはぐな設定にしてある。
もしも、/svnにアクセスすることでリポジトリの一覧を見せたい場合は、Subversionリポジトリの一覧が参考になるだろう。
余談だが、上記参考サイトでは、SVNAutoversioningディレクティブをonにしている。
こうすると、svnのクライアントではなくdavのクライアントでアクセスしたときに、PUTリクエストでcommitが行えるようになるらしい。
私の場合はsvnのクライアントしか使わないので、SVNAutoversionningは使わないことにした。
httpd.conf は以下のような感じ。
Alias /trac-static "/usr/local/share/trac/htdocs/"
<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/trac
PythonOption TracUriRoot /trac
</Location>
<LocationMatch "/trac/[~/]+/login">
AuthName "trac"
AuthType Digest
AuthUserFile /usr/local/etc/apache22/trac.pw
require valid-user
</LocationMatch>
これで、/var/tracの下のtracプロジェクトの一覧が、http://www.wizard-limit.net/trac/ にアクセスすることで表示されるようになる。tracの静的コンテンツは、/trac-static でアクセスできるようになるので、tracのプロジェクト毎の設定ファイル(trac.ini)の[trac]セクションに以下を追加しておく。
htdocs_location = /trac-static認証のために必要なファイルは、/usr/local/etc/apache22/trac.pw(場所とファイル名はなんでも良いけど)。htdigestコマンドで作成しておく。
うちの場合、/var/tracの下の各プロジェクトのsvnリポジトリは、/var/svnの下に同名で作成することにしている。そして、dav_svn経由で /svn からアクセスできるようにしている。
その部分に間する設定は以下のような感じ。
<Location /svn>
DAV svn
SVNParentPath /var/svn
SVNIndexXSLT "/svnindex.xsl"
AuthzSVNAccessFile /usr/local/etc/apache22/svnauth
Satisfy Any
Require valid-user
AuthType Digest
AuthName "DAV"
AuthUserFile /usr/local/etc/apache22/digest.pw
SetInputFilter DEFLATE
</Location>
※ 会社マシンでは mod_auth_external を使ったが、うちでは普通にファイルを使ったdigest認証。dav_svn特有なのは、AuthzSVNAccessFileディレクティブ。このファイルには、以下のような内容が書いてある。
[/] false = rwこれで、digest認証を通った後で、ユーザ毎、リポジトリ毎の読み書きの権限が設定できる。上の例だと、false はすべてのリポジトリを読み書きできる。
tracやsubversionで、プロジェクトやリポジトリの一覧を表示するかどうかは、利便性とセキュリティのポリシーを天秤にかけるべきだ。
うちの場合は、tracのプロジェクトの一覧は見れるけど、リポジトリの一覧は見えないと言うちぐはぐな設定にしてある。
もしも、/svnにアクセスすることでリポジトリの一覧を見せたい場合は、Subversionリポジトリの一覧が参考になるだろう。
余談だが、上記参考サイトでは、SVNAutoversioningディレクティブをonにしている。
こうすると、svnのクライアントではなくdavのクライアントでアクセスしたときに、PUTリクエストでcommitが行えるようになるらしい。
私の場合はsvnのクライアントしか使わないので、SVNAutoversionningは使わないことにした。
カテゴリ
FreeBSDトラックバック(0)
このブログ記事を参照しているブログ一覧: trac と mod_python
このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/1070

コメントする