1.安装SVN相关模块
sudo apt-get install apache2 subversion libapache2-svn
2.配置SVN版本库
- sudo addgroup subversion
- sudo usermod -G subversion -a www-data
我们可以在/var/lib目录下构建一个svn目录,作为SVN版本库根目录:
- cd /var/lib
- sudo mkdir svn
假设我们要创建版本库zlex:
- cd svn
- sudo svnadmin create zlex
更改版本库所属用户、组:
- sudo chown -R root:subversion zlex
赋予组成员对所有新加入文件仓库的文件拥有相应的权限:
- sudo chmod -R g+rws zlex
3.配置Apache
接下来,我们需要修改/etc/apache2/mods-available/dav_svn.conf文件,配置SVN版本库:
- sudo vi /etc/apache2/mods-available/dav_svn.conf
打开红框中的注释,
分述:
<Location /svn>与</Location>成对儿出现!
DAV svn开启DAV模块支持!
SVNPath /var/lib/svn与SVNParentPath /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账户:
- 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。
我们先做一个默认的配置,当前这个文件还不存在:
- sudo vi /etc/apache2/dav_svn.authz
然后追加:
[zlex:/]
* = r
这样,所有授权用户就都能够看到zlex项目了!
然后访问http://localhost/svn/zlex:
我们通过组方式管理项目,修改/etc/apache2/dav_svn.authz 文件:
- sudo vi /etc/apache2/dav_svn.authz