Ubuntu 下Trac+Subversion+Apache安装

注:在某位前辈的配置基础上进行添加apache配置和注释

1.安装svn:
$ sudo apt-get install subversion
$ sudo apt-get install libapache2-svn //这个是安装apache部分,如果不使用http协议可以不必装这个.

2.配置svn服务器端:
首先,创建subversion用户组,并且将www-data和您自己这两个用户加入该组.(这可以通过在Ubuntu 菜单上选择“系统->系统管理->用户和组”操作).
其次,创建svn的根位置,
$ sudo mkdir /home/svn
$ cd /home/svn
然后,开始一个新的知识库,
$ sudo mkdir myproject
$ sudo chown -R root:subversion myproject //这里要给www-data添加权限,因为我们后面要用apache
$ sudo chmod -R g+rws myproject //这个是为了赋予组成员对所有新加入文件仓库的文件拥有相应的权限
$ sudo svnadmin create /home/svn/myproject //开始一个新的知识库
最后,设置用户验证,
$ sudo vim /home/svn/myproject/conf/svnserve.conf //将# [general]和# password-db = passwd的注释取消掉,这表示使用同级目录下的passwd文件做为密码数据库.
$ sudo vim /home/svn/myproject/conf/passwd //添加admin用户及密码.

3.使用svn客户端:
这里只介绍两种方式,假设工作目录位于/home/cyndi/work/下.
$ svn co file:///home/svn/myproject //这是当客户端与服务器端在同台机器上时,这么访问.
$ svn co svn://10.28.158.133/home/svn/myproject –username admin
另外,为了使客户端访问知识库时简化目录,可以在服务器端启用daemon,
$ svnserve -d –foreground -r /home/svn
这样客户端的访问可以简化为,
$ svn co svn://10.28.158.133/myproject –username admin

详细的svn安装及设置可参考:http://wiki.ubuntu.org.cn/SubVersion

4.安装trac并设置,与svn相仿:
$ sudo apt-get install trac
$ sudo trac-admin /home/trac initenv //除了项目名称(myprojectname)和svn仓库路径(/home/svn/myproject)以外,其余可使用默认.
$ sudo chown -R root:www-data trac //使用www-data:www-data
$ sudo chmod -R g+rsw trac

5.设置用户权限:
首先,创建用户,第二参数指定用户文件存放的位置,第三个参数指定连接的域,第四个为用户名,
$ htdigest -c /home/trac/passwd.digest trac.palmsource.com www-data
其次,为passwd.digest文件中创建的用户绑定trac系统的权限,
$ trac-admin /home/trac/ permission add admin TICKET_ADMIN //为admin这个用户/组加上指定权限,关于更多权限设置可以参看:http://trac.edgewall.org/wiki/TracPermissions
$ trac-admin /home/trac/ permission add www-data admin //为www-data这个用户绑定与admin一样的权限
其次,启动daemon监听指定端口用于处理web请求,
$ tracd -p 8000 –auth myprojectname,/home/trac/passwd.digest,trac.palmsource.com /home/trac/
另外,如果不打算启用用户权限,可以这么用,
$ tracd -p 8000 /home/trac/
(这一步我试了,授权方式,不好用,还不知道为什么。)

6.Apache设置

add following conf at the end of apache2.conf:

<Directory "/usr/share/trac/htdocs/">
        Options Indexes MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>
<Location /trac>
          SetHandler mod_python
          PythonHandler trac.web.modpython_frontend
          PythonOption TracEnv /home/trac/testproject
          PythonOption TracUriRoot /trac
</Location>

<Location "/trac/login">
        AuthType Basic
        AuthName "Trac"
        AuthUserFile /etc/apache2/trac.passwd //用htdigest生成密码文件,trac,apache,svn可以共享一个密码文件
        Require valid-user
</Location>

7.注意事项

上面配置是针对python模式的,CGI和Python不能一起配,会出现"wiki.png"等怪问题,我不太会弄。