svn + trac のセットアップ
/srv/svn/ 以下に subversion のリポジトリ群をおき,/srv/trac/ 以下に trac のプロジェクト群を置いて,http://www.example.com/trac/xxx/ でアクセスする場合を考える.
まず subversion のリポジトリを作成する.
# mkdir /srv/svn # cd /srv/svn # chown www-data.www-data . # chmod g+s . # sudo -u www-data mkdir 2007-0111-test01 # sudo -u www-data svnadmin create 2007-0111-test01
次に trac のプロジェクトを作成する.
# sudo mkdir /srv/trac # cd /srv/trac # chown www-data.www-data . # chmod g+s . # sudo -u www-data mkdir 2007-0111-test01 # sudo -u www-data trac-admin 2007-0111-test01 initenv
apache2 + mod_python でアクセスする設定を行う.
# apt-get install libapache2-mod-python # vi /etc/apache2/sites-enabled/000-default <Location "/trac"> SetHandler mod_python PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /srv/trac PythonOption TracUriRoot /trac </Location> $ sudo /etc/init.d/apache2 reload
TracEnvParentDir により,後ほど新たに trac プロジェクトを加えたときにも apache2 を再設定しなくても済むようにできる.
ユーザ認証を設定する.
# cd /srv/trac # sudo -u www-data htpasswd -c .htpasswd yourname # sudo -u www-data chmod 640 .htpasswd # vi /etc/apache2/sites-enabled/000-default <LocationMatch "/trac/[^/]+/login"> AuthType Basic AuthName "trac" AuthUserFile /srv/trac/.htpasswd Require valid-user </LocationMatch> # /etc/init.d/apache2 reload
以上で http://www.example.com/trac/2007-0111-test01 によって trac プロジェクトにアクセスできる.
最後に subversion の WebDAV アクセスと認証を設定する.ここでは trac と認証ファイルを共有する場合の設定を行っている.
# vi /etc/apache2/sites-enabled/000-default <Location "/svn"> DAV svn SVNParentPath /srv/svn AuthType Basic AuthName "svn" AuthUserFile /srv/trac/.htpasswd Require valid-user </Location> # /etc/init.d/apache2 reload
2007/02/14 追記: デフォルトでは誰にも変更の権限が付与されていない.以下で "root 権限" を付与できる.
# sudo -u www-data trac-admin /srv/trac/2007-0111-test01 permission add yourname TRAC_ADMIN