所有的操作都是在root下,而且关闭selinux/iptables 即/etc/sysconfig/selinux 和 /etc/sysconfig/iptable
1:安装svn服务器所需软件
#yum install subversion mysql-server httpd mod_dav_svn mod_perl sendmail wget gcc-c++ make unzip perl* ntsysv vim-enhanced(可选)
2:新建一个目录用于存储SVN所有文件
#mkdir /home/svnroot
3:新建一个版本库(版本库成功创建后在repos/下会有conf db format hooks locks README.txt等配置文件或者文件夹)
#svnadmin create /home/svn/repos
4:添加用户
在/home/svnroot/repos/conf/passwd添加形如"username = passwd"的条目(一定要顶格写,否则linux会报错)
bush = bush,obama //这里是存放用户名和明文密码的地方,这种独立安装的方式不安全,不推荐,后面提供基于web验证的方式访问
xuehen = xuehen
5:修改用户访问策略
在/home/svn/project/conf/authz添加用户组及相应的组权限形如“组名 = 成员”
[group] //group区域为属组与人员的配置下面为目录权限的相关配置
admin = xuehen
common = bush,obama
[repos:/] //这里创建一个库repos的根即可,后续可用tortoise客户端进行子级目录的创建
@admin = rw //目前的权限有 r/w , “*“代表出属组admin、common其他所有人 ,”=” 右边空白,代表没有任何权限
@ common = r
* =
6:修改/home/svn/project/conf/svnserve.conf文件让用户和策略配置生效
[general]
anon-access = none
auth-access = write
passwd_db = /home/svnroot/repos/conf/passwd
authz_db = /home/svnroot/repos/conf/authz
7:启动服务器
#svnserve -d -r /home/svnroot --listen-port 3690 //ps aux|grep subversion或者ps -ef|grep svn 或者netsta -tulunp|grep 3690 可查看服务是否启动和端口状态pID等
8: 测试服务器 // 使用kill -9 PID 可以杀死进程
#svn co svn://ip/repos
Authentication realm:
Password for"root":
Authentication realm:
Password for xuehen:
A repos/test
A repos/server
A repos/client
Checked out revision 1. ( 测试提取成功)
此时新建个文件夹(最好英文名字),在window下邮件chekout 在Repository 中指定服务器的路径:svn://ip/repos/ 点击ok 输入用户名密码即可访问
此时只要拥有足够的权限就可以对目录进行其它的操作了
配置svn服务器支持http认证访问 //此时repos/passwd文件不再起作用取而代之的是conf/svnpasswd
9:创建用户配置文件
#touch /etc/httpd/conf/svnpasswd
10:修改apache服务器的配置文件http.conf使登录时要求验证身份
#vim /etc/httpd/conf/httpd.conf //在文件末尾添加,全部顶格写,不留空格
DAV svn
SVNPath /home/svnroot/repos //版本仓库绝对路径
AuthType Basic
AuthName "svn for repos"
AuthUserFile /etc/httpd/conf/svnpasswd //存放加密过的用户名和密码的地方
AuthzSVNAccessFile /home/svnroot/repos/conf/authz //svn权限访问控制设置文件可以新建
Satisfy all
Require valid-user //用户登录要求验证
11:修改项目库的所属属组
#chown -R apache.apache /home/svnroot/repos/
12:添加远程登录用户账号
#htpasswd -c /etc/httpd/conf/svnpasswd user-name //-c 用于创建一个新的文件
13:重启svn和apache服务器
#killall svnserve //ps aux|grep 3690
#svnserve -d -r /home/svnroot --listen-port 3690
#service httpd restart //这个命令现在被取代为 systemctl enable httpd.service
用浏览器测试
http://127.0.0.1/svnroot/repos