Ubuntu搭建svn服务器(Subversion+Apache配置)

系统环境: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


猜你喜欢

转载自blog.csdn.net/ivansuntech/article/details/43114631