安装:
# apt-get install apache2
# apt-get install subversion
# apt-get install libapache2-svn
创建svn仓库
一般的svn仓库为/home/svn或/usr/local/svn,并创建项目project。
# mkdir /home/svn
# svnadmin create /home/svn/project
通过WebDAV协议访问(http://)
通过apache服务器访问svn
# vi /etc/apache2/mods-available/dav_svn.conf
<Location /svn> #apache下的位置/svn DAV svn SVNParentPath /home/svn #svn仓库目录 AuthType Basic #认证类型为基本认证 AuthName "myproject subversion repository" #认证名称,将在浏览器上弹出对话框的标题 AuthUserFile /home/svn/conf/passwd #认证密码文件 AuthzSVNAccessFile /home/svn/conf/authz #权限目录文件
# <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user #不能匿名访问
# </LimitExcept> </Location>
若需要用户每次登陆都需进行用户密码验证,将<LimitExcept GET PROPFIND OPTIONS REPORT>和</LimitExcept>两行去掉。
重启Apache
# /etc/init.d/apache2 restart
创建svn用户
安装htpasswd:
# apt-get install apache2-utils
添加用户:
# htpasswd /home/svn/passwd username
选项-c为创建新的/home/svn/passwd,如果第一次添加用户,加上-c,否则,将-c去掉,否则将覆盖以前的用户。
authz权限管理
authz文件设置用户的访问权限
vi /home/svn/authz
[groups] admin = user1 user2 user = user1, user2, user3 [/] @admin = rw [project:/] @user = rw
* = r
[groups]表示用户分组,分为admin和user组(组名和分组随意)
[/]表示svn根目录,对所有项目的访问权限
@admin=rw表admin组对[/]的权限为rw
[project:/]表示对project项目的访问权限
@user = rw 表user组对project项目根目录下的权限为rw
* = r表示除@user外其他用户对project的访问权限为r,优先级比[/]高
启动svn
# svnserve -d -r /home/svn
-d表示后台运行,-r表示仓库。
停止svn
# killall svnserve
访问
可用TortoiseSVN或浏览器上访问,地址为
http://svn服务器ip/svn/project
错误处理:
1、在客户端访问svn时,无法创建或上传文件,出现
解决:
访问权限问题,将/home/svn的文件夹的访问权限改为a+w
# chmod -R a+w /home/svn