centos7 svn服务器搭建

所有的操作都是在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: <svn://ip:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d sv

Password for"root":
Authentication realm: <svn://ip:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d Username: xuehen 
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                            //在文件末尾添加,全部顶格写,不留空格
<Location /svnroot/repos>                                  //   在location标记中填写项目库的相对路径
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                                           //用户登录要求验证
</Location>

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





评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值