SVN的服务器搭建配置详解
如果说采用SVN搭建项目服务器(SVN创建项目实现)不容易的话,那其中的难点主要就是在配置了,SVN搭建服务器实现并结合Apache2实现web访问的难点也主要就是SVN和Apache2的配置了。在这,我将详解一下SVN的相关配置及过程中需要注意的地方。
SVN项目创建完成以后,配置这块主要就是对conf/下的svnserve.conf/passwd/authz三个配置文件的相关配置,按照顺序:
1.svnserve.conf 该文件为存放本svn库的全局访问控制信息,具体配置如下:
去掉#[general]前面的#号
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#认证用户的权限,可以是read,write,none,默认为write
auth-access = write
#密码数据库和访问授权信息的路径,去掉前面的#(可以采用路径方式使用公共 passwd/authz)
password-db = passwd
authz-db = authz
解释: 对该处的配置解释在备注上其实已经有了介绍,单就这块容易出问题或者需要注意的地方这边强调一下
1.1 所有的内容需要定格写,否则会出错
1.2 其中的password-db和authz-db的配置文件路径以上用到的是和svnserve.conf同路径下的passwd/authz文件,但是这边建议创建共有的passwd/authz配置,特别是针对多个项目的时候,这样如果需要用户密码或者权限的话只需要修改共有文件就行,而针对每次创建的项目只需要配置一下svnserve.conf文件即可。
2. passwd 用于存放本svn库的用户名和密码,该文件的配置其实是比较简单的:
[users]
User = 123456 // username = password
User1 = 123456
User2 = 123456
格式是 username = password,上面创建了三个用户(User/User1/User2),密码都是123456
针对于每个用户和密码可以在authz文件下设置相应的权限,包括对不同项目工程的权限
3. authz 存放本svn库的访问授权信息,这块的配置算是比较最复杂的一块了,下面我就以实例讲解一下:
[groups]
admin = User
group1 = User1
group2 = User2
[/]
@admin = rw
* =
[projectName1:/]
@group1 = rw
* =r
[projectName2:/]
@group2 = rw
* =
解释:
3.1 在这把之前创建的三个用户分成了三个组:admin/group1/group2, 然后通过组的方式去设定每个组下的用户权限
3.2 [/] ,[projectName1:/],[projectName2:/] 是针对不同的项目设置不同用户的权限,其中 [/] 这个根目录表示之前配置的/claySVN/MyProjects/下的所有project,表明admin组有所有的权限,而[projectName1:/]则是表示之前创建的/claySVN/MyProjects/下的projectName1,表明user1组有projectName1的访问权限。
3.3 这里需要说一个遇到的情况,如果我们不添加 [……] 的设置也是可以的,但是我们后面对 apache2的设置会有一个类型的设置(SVNPath&&SVNParentPath),这里先直接说明一下,如果我们采用SVNParentPath的方式而没有设定[……]的话在web访问的时候会出错,详情介绍请参见后面的介绍。
3.4 权限解释:
“=”后面有3种情况
空:表示没有任何权限
r:表示只读权限
rw:表示读写权限
以上就是对SVN的主要的一些配置讲解,其实很多配置都是相辅相成的,结合 SVN搭建服务器实现并结合Apache2实现web访问 系列,才能更加深刻的理解……