CENTOS5でTrac&Subversionのインストール

CENTOS(REDHAT系)にTRAC&Subversionをインストールした後の、アクセス制限など忘れやすいことの補足事項
あくまで設置メモで、うまくいきますが、まだまだロスが多いかもしれないです。


とりあえずTrac,Subversionインストールはこちらを参考
http://tech.tenki.cc/archives/9
http://blog.enjoitech.jp/detail.php?aid=110

そのままだと

  • 現在サーバに複数のバーチャルドメインが動いているので、そのままだとどこのドメインでもTRACフォルダが見えるようになってしまう。
  • あとユーザー管理が個人用になっている。

の問題点があるので、そこらへんを変更。


subversionでのアクセス権限の設定をします。
リポジトリが増えたら変更していく必要あり。
権限は全体からプロジェクトに降りていきます。
権限を空にすると何も出来ない権限になります。


/home/svn/conf/svnauth.conf を編集

[groups]
manager = admin
everyone = user1,user2

[/]
@manager = rw
@everyone = rw

[/himitsuProject:/]
@manager = rw
@everyone = 

参考:
http://d.hatena.ne.jp/ykog/20070108/p1
http://trac.edgewall.org/wiki/TracFineGrainedPermissions

trac.htpassの設定

設定したユーザ名(この場合、admin,user1,user2)の情報を、/usr/share/trac/trac.htpasswdに設定しておきます。
これで、subversionからのアクセスで認証が設定されるようになります。

作成参考:
http://www.japansecurity.net/htpasswd/1.htm

apacheの設定

設定条件:

の設定にしています。
subversiontracのアクセス制限は共通。
下記をsubversion.conf(LoadModule以外)をコメントアウトしてhttpd.confの""にいれる↓

<Location "/repos">
	DAV svn
	SVNParentPath /home/svn/
	AuthzSVNAccessFile /home/svn/conf/svnauth.conf
	AuthType Basic
	AuthName "Authorization Realm"
	AuthUserFile /usr/share/trac/trac.htpasswd
	Require valid-user
</Location>

Alias /trac/ "/usr/share/trac/htdocs/"
<Location "/cgi-bin/trac.cgi">
	SetEnv TRAC_ENV "/usr/share/trac/myproject.db"
</Location>

### You need this to allow users to authenticate
<Location "/cgi-bin/trac.cgi/login">
	AuthType Basic
	AuthName "trac"
	AuthUserFile /usr/share/trac/trac.htpasswd
	Require valid-user
</location>

<Location /trac>
	SetHandler mod_python
	PythonDebug On
	PythonHandler trac.web.modpython_frontend
	PythonOption TracEnvParentDir /home/trac
	PythonOption TracUriRoot /trac
	AuthType Basic
	AuthName "trac"
	AuthUserFile /usr/share/trac/trac.htpasswd
	Require valid-user
</Location>

#<LocationMatch "/trac/.*/login">
#	AuthType Basic
#	AuthName "trac"
#	AuthUserFile /usr/share/trac/trac.htpasswd
#	Require valid-user
#</LocationMatch>

あとは、apacheの設定確認後リスタート

>service httpd configtest
>service httpd restart

Subverisonの読み込み確認。

windowsならTortoiseSVNなどからhttp://***/repos/*設定したリポジトリ名*/ にアクセスした際、パスワード認証が出ることを確認して下さい。
※初期インポート時には、trunk,branches,tagsフォルダを作成してください。
これも初期設置簡単に出来そうですが、まだ調べてません--;

参考:
http://www.gside.org/Gentoo/subversion/subversion_client.html

TRACの確認

http://***/trac/BASIC認証をしてアクセスして見えていたらOK。
リポジトリブラウザがForbiddenになっているのを確認して、ログインして見えていたら大丈夫です。

唯一の問題は、tracにアクセスした時点でログインするので、ブラウザを閉じないとログアウト出来ないことですが、
楽なのでこのままでいってます。
嫌な場合は、コメントアウトを解除して、のAuthUserFileを変更するといいようです。

リポジトリの作成

svnadmin create /home/svn/Test
chown -R apache:apache /home/svn/Test

tracの連動

trac-admin /home/trac/Test initenv
Project Name [My Project]>  任意のプロジェクト名を入れる
Path to repository [/path/to/repos]>  svnリポジトリの場所
chown -R apache:apache /home/trac/Test

/home/trac/conf/trac.ini の編集

default_charset = utf-8

管理者の権限設定

*を使うと簡単に出来るみたいですが、なぜかうまくいかなかったので、一個一個for文で処理しています。
うーん。
※/home/trac/Testの部分はプロジェクトを指定
※authenticated はユーザーを指定

for i in BROWSER_VIEW  CHANGESET_VIEW  CONFIG_VIEW  FILE_VIEW  LOG_VIEW  MILESTONE_ADMIN  MILESTONE_CREATE  MILESTONE_DELETE  MILESTONE_MODIFY  MILESTONE_VIEW  REPORT_ADMIN  REPORT_CREATE  REPORT_DELETE  REPORT_MODIFY  REPORT_SQL_VIEW  REPORT_VIEW  ROADMAP_ADMIN  ROADMAP_VIEW  SEARCH_VIEW  TICKET_ADMIN  TICKET_APPEND  TICKET_CHGPROP  TICKET_CREATE  TICKET_MODIFY TICKET_VIEW  TIMELINE_VIEW  TRAC_ADMIN  WIKI_ADMIN  WIKI_CREATE  WIKI_DELETE  WIKI_MODIFY  WIKI_VIEW; do trac-admin /home/trac/Test permission add authenticated ${i}; done

anonymousを削除する(初期で入っているので、ログインしないとみられないようにする)

for i in BROWSER_VIEW  CHANGESET_VIEW  CONFIG_VIEW  FILE_VIEW  LOG_VIEW  MILESTONE_ADMIN  MILESTONE_CREATE  MILESTONE_DELETE  MILESTONE_MODIFY  MILESTONE_VIEW  REPORT_ADMIN  REPORT_CREATE  REPORT_DELETE  REPORT_MODIFY  REPORT_SQL_VIEW  REPORT_VIEW  ROADMAP_ADMIN  ROADMAP_VIEW  SEARCH_VIEW  TICKET_ADMIN  TICKET_APPEND  TICKET_CHGPROP  TICKET_CREATE  TICKET_MODIFY TICKET_VIEW  TIMELINE_VIEW  TRAC_ADMIN  WIKI_ADMIN  WIKI_CREATE  WIKI_DELETE  WIKI_MODIFY  WIKI_VIEW; do trac-admin /home/trac/Test permission remove anonymous ${i}; done

参考:
http://mtamaki.com/trac/mtamaki/wiki/TracPermissions


権限の確認

trac-admin /home/trac/Test permission list

これでSubversion使えますので、プロジェクト追加毎にリポジトリの作成とTracとの連動がいりまふ。

参考:
http://d.hatena.ne.jp/ykog/20070108/p1
http://reguzy.jp/trac/wiki/TracPermissions