1.安装SVN相关模块 
sudo apt-get install apache2 subversion libapache2-svn

2.配置SVN版本库 

  1. sudo addgroup subversion
  2. sudo usermod -G subversion -a www-data


我们可以在/var/lib目录下构建一个svn目录,作为SVN版本库根目录: 


  1. cd /var/lib
  2. sudo mkdir svn


假设我们要创建版本库zlex: 


  1. cd svn
  2. sudo svnadmin create zlex


更改版本库所属用户、组: 


  1. sudo chown -R root:subversion zlex


赋予组成员对所有新加入文件仓库的文件拥有相应的权限: 


  1. sudo chmod -R g+rws zlex



3.配置Apache 

接下来,我们需要修改/etc/apache2/mods-available/dav_svn.conf文件,配置SVN版本库: 


  1. sudo vi /etc/apache2/mods-available/dav_svn.conf


 

打开红框中的注释,

分述: 

<Location /svn></Location>成对儿出现! 

DAV svn开启DAV模块支持! 

SVNPath /var/lib/svnSVNParentPath /var/lib/svn选其一,不可同时出现!建议使用SVNParentPath,可以在SVN根目录下创建多个SVN版本库! 

引用


  AuthType Basic 
  AuthName "Subversion Repository" 
  AuthUserFile /etc/apache2/dav_svn.passwd

定义了授权类型、并指定了密码文件(/etc/apache2/dav_svn.passwd)。 

AuthzSVNAccessFile /etc/apache2/dav_svn.authz授权配置文件,规定了路径访问权限! 

引用


#<LimitExcept GET PROPFIND OPTIONS REPORT> 
   Require valid-user 
#</LimitExcept>

建议只使用Require valid-user,打开<LimitExcept />注释,将允许匿名访问! 


现在通过命令设置SVN账户: 

 


  1. sudo htpasswd -c /etc/apache2/dav_svn.passwd <username>


这里用到参数-c,是因为/etc/apache2/dav_svn.passwd文件不存在,如果文件存在,则无需该参数!否则,将覆盖掉原有密码文件! 

形如: 

引用


sudo htpasswd -c /etc/apache2/dav_svn.passwd snowolf 
New password: 
Re-type new password: 
Updating password for user snowolf


可以追加多个账户!

现在,需要设置路径访问权限文件AuthzSVNAccessFile /etc/apache2/dav_svn.authz。 

我们先做一个默认的配置,当前这个文件还不存在: 


  1. sudo vi /etc/apache2/dav_svn.authz


然后追加:



[zlex:/] 
* = r 


这样,所有授权用户就都能够看到zlex项目了! 

然后访问​​http://localhost/svn/zlex​​: 


我们通过组方式管理项目,修改/etc/apache2/dav_svn.authz 文件: 

 


  1. sudo vi /etc/apache2/dav_svn.authz