- 2008-04-23 (水) 2:38
- 技術全般
Subversionとtracの設定を久しぶりに行ったので、メモ。
- Subversionとtracの認証は同一で管理したい
- それぞれhttpを利用して公開する(SSLは今回は除外して考える)
- 更新は登録ユーザーしか行えないが、閲覧はどのユーザーでも行えるようにする
- 認証にはdigest認証を利用する
- digest認証のレルムはrealmとする
以下の前提。
リポジトリ:/path/to/svn/repos
リポジトリURL:http://example.com/svn/repos
tracディレクトリ:/path/to/trac
trac URL: http://example.com/trac/repos
まずはリポジトリの作成
$ svnadmin create /path/to/svn/repos
※リポジトリ内のプロジェクト構成についてはここでは触れません。
次にApacheの設定を行う。
svn用Apacheの設定はhttpd.confに以下の設定を追加する
※ディレクトリ単位で詳細に権限を設定する場合は、AuthzSVNAccessFileを利用するがここでは割愛する。
※参考URL:Subversionのインストールと設定
DAV svn
SVNPath /path/to/svn/repos
AuthType Digest
AuthName “realm”
AuthUserFile /path/to/svn/repos/.svndigest
#リポジトリの読み込みに必要なメソッド以外は、認証を必要とする
Require valid-user
#読み込みに対しても認証を必要とする場合は、LimitExceptは必要なし 以下は例
#Require valid-user
複数リポジトリの場合でも、上記設定をリポジトリごとに行うのが吉。
SVNParentPathは設定が楽そうに見えて、柔軟性が無くあとでどうせ変更することが多い。
svnを利用するにあたり以下のようにモジュールをロードする必要有り。
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
authz_svn_moduleはAuthzSVNAccessFileを利用しない場合は必要なし。
digest認証のユーザーは以下のコマンドを使って作成する
$ htdigest [-c] /path/to/svn/repos/.svndigest realm username
ファイルを初期作成する場合は、cオプションをつけるが、それ以外はcオプション必要なし。
次ぎにtracとの連携。
$ trac-admin /path/to/trac initenv
で、コマンドプロンプトでいろいろ聞かれるので普通に答える。
tracのApache設定は以下のとおり。ここではmod_pythonを利用しているものとする。
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /path/to/trac
PythonOption TracUriRoot /trac/repos
AuthType Digest
AuthName “realm”
AuthUserFile /path/to/svn/repos/.svndigest
Require valid-user
複数レポジトリをtracで扱う場合は、上記設定(trac-admin path initenv 〜 Apache設定まで)を別のレポジトリに対しても行うのが吉。
tracの権限設定は、以下のコマンドで利用可能
$ trac-admin /path/to/trac permission list #全権限のリスト
$ trac-admin /path/to/trac permission remove 権限 #TRAC_ADMIN、BROWSER_VIEWなど
$ trac-admin /path/to/trac permission add 権限 #TRAC_ADMIN、BROWSER_VIEWなど
※新規でtracを立ち上げた場合、デフォルトでanonymousに強大な権限が与えられているため注意。
※基本的に、anonynousは*_VIEW権限のみ残す。
※その他の権限は、trac-adminを利用して作成する。
※権限グループも設定が簡単 ⇒ グループ名称をユーザー名と同等に扱い、ユーザーへの権限付与はグループ名をそのまま利用できる。
ex)
$ trac-admin /path/to/trac permission add member TRAC_ADMIN ...
$ trac-admin /path/to/trac permission add nakamura member
コマンドラインでパーミッションを設定するのは面倒だが、WebAdminプラグインを入れておけばPermissionメニューから簡単にパーミッションを変更できる。
これでApacheとtracの連携ができ、認証情報も共用できている。
svnのチケットとtracの連携は次回。
- Newer: [Subversion][trac]チケットとコミットの連携設定
- Older: Firefoxのポップアップブロック解除について
Comments:1
- 常山日記 08-04-23 (水) 13:01
-
[その他]巡回
クリックする場所を測定するアクセス解析「ClickHeat」 JavaScriptでXPath/XSLT「AJAXSLT」 「このアドオンは古いバージョ…
Trackbacks:0
- Trackback URL for this entry
- http://blog.joyfullife.jp/archives/2008/04/23023802.php/trackback
- Listed below are links to weblogs that reference
- [Subversion][trac]それぞれの設定と連携 from 30からのBlog