系统环境:Ubuntu12.04LTS
安装如下工具:
sudo apt-get install subversion
sudo apt-get install apache2
sudo apt-get install libapache2-svn
创建文件夹:
sudo mkdir /home/svn
sudo mkdir /home/svn/project
创建版本仓库:
sudo svnadmin create /home/svn/project/
版本仓库目录授权给apache读写:
sudo chown -R www-data:www-data /home/svn/project/
打开apache配置文件:
sudo vi /etc/apache2/mods-available/dav_svn.conf
加入如下内容:
<Location /project>
DAV svn
SVNPath /home/svn/project
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /home/svn/project/conf/svn.passwd
#<IfModule mod_authz_svn.c>
AuthzSVNAccessFile /home/svn/project/conf/svn.authz
#</IfModule>
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
#</LimitExcept>
</Location>
location说的是访问地址,比如上述地址,访问的时候就是
http://192.168.1.101/project
其中有两行被注释掉了,以保证每次都需要用户名密码
增加对AuthzSVNAccessFile的支持
修改::/etc/apache2/mods-enabled/dav.load
sudo vi /etc/apache2/mods-enabled/dav.load
增加以下内容
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
创建账户及访问权限文件
sudo touch /home/svn/project/conf/svn.passwd
sudo touch /home/svn/project/conf/svn.authz
添加账户ivansun
第一次添加带-c参数,后面再添加用户切记不要-c,否则所以账户将会被清零
sudo htpasswd -c /home/svn/project/conf/svn.passwd ivansun
-c 参数会清空以前所有帐号信息
如果要添加其他的帐号
sudo htpasswd /home/svn/project/conf/svn.passwd test
编辑用户访问权限:
sudo vi /home/svn/project/conf/svn.authz
如添加用户访问权限:
[groups]
group_admin=ivansun
group_se=test
[project:/]
*=r
@group_admin=rw
[project:/OpenSource]
@group_se=rw
以上配置表示,group_admin分组中,对project文件及其子文件具备读写权限,其他人具备只读权限;group_se 分组中,对OpenSource文件及其子文件具备读写权限。
重启apache就可以了。
sudo /etc/init.d/apache2 restart