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安装及设置可参考:

 

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这个用户/组加上指定权限,关于更多权限设置可以参看:

$ 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:

 

Options Indexes MultiViews

AllowOverride None

Order allow,deny

Allow from all

 

SetHandler mod_python

PythonHandler trac.web.modpython_frontend

PythonOption TracEnv /home/trac/testproject

PythonOption TracUriRoot /trac

 

AuthType Basic

AuthName "Trac"

AuthUserFile /etc/apache2/trac.passwd //用htdigest生成密码文件,trac,apache,svn可以共享一个密码文件

Require valid-user

 

7.注意事项

 

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