Subversion(简称SVN)是一款自由开放的版本控制软件,Subversion可以管理文件、文件夹以及记录它们的修改状况。
1、关闭SELinux和firewalld
2、安装SVN:# yum -y install subversion
3、查看SVN版本和帮助信息:
# svnserve --version
# svnserve --help
# svn ?
4、创建使用SVN的用户:
# groupadd -r svn
# useradd -r -g svn -s /sbin/nologin marion
# useradd -r -g svn -s /sbin/nologin keyso
5、创建SVN版本库:
# mkdir -pv /svn/docs
# svnadmin create /svn/docs
# ls -lh /svn/docs
6、修改用户账号文件:# vim /svn/docs/conf/passwd,在[users]配置段中新增如下代码
marion = 123456
keyso = abcdef
7、修改权限控制文件(设置哪些用户可以访问哪些目录):# vim /svn/docs/conf/authz,在末尾新增如下代码
[groups]
admin = marion,keyso
[/]
@admin = rw
* =
备注:admin组为权限组,组中有2个用户marion和keyso,对SVN根目录都具有读写权限。* =表示其他所有人没有任何权限,权限可以设置为只读(r)、读写(rw)和无权限(空)。
8、修改服务配置文件:# vim /svn/docs/conf/svnserve.conf,在[general]配置段中新增如下代码:
anon-access = none //匿名用户访问无权限,权限可以是read、write、none,默认为read
auth-access = write //授权用户有写权限
password-db = passwd //密码数据库的路径
authz-db = authz //访问控制文件
realm = /svn/docs //认证命名空间,即版本库所在目录
9、启动SVN:
# svnserve -d -r /svn/docs //-d:守护进程,-r:SVN根目录,即版本库的路径
# ps -ef | grep svn | grep -v grep
# ss -tunlp | grep 3690
10、开机自启动:
# mkdir -pv /scripts
# vim /scripts/svnrun.sh
#!/bin/bash
/usr/bin/svnserve -d -r /svn/docs
# chmod +x /scripts/svnrun.sh
# vim /etc/rc.d/rc.local,末尾新增代码:/scripts/svnrun.sh
# chmod +x /etc/rc.d/rc.local
11、Windows客户端下载安装图形工具TortoiseSVN(下载地址https://tortoisesvn.net/)
12、创建用于存放版本库的目录,并创建SVN客户端版本库:
13、输入版本库的URL地址:
14、输入用户名和密码:
15、在版本库中新建测试文件svntest.docx,鼠标右键空白处,将其添加到版本库:
16、在另一台服务器上使用另一个账户登录SVN:
17、在版本库中新建测试文件svntest2.txt,鼠标右键空白处,将其添加到版本库:
18、再次使用marion账户更新版本库:
keyso的文件已被更新过来
19、配置SVN支持HTTP方式访问(支持http://协议):
# yum -y install httpd mod_dav_svn
# ls /etc/httpd/modules | grep svn
# vim /etc/httpd/conf.d/subversion.conf //创建文件
<Location /svn>
DAV svn
SVNPath /svn/docs
AuthType Basic
AuthName "Subversion repos"
AuthUserFile /svn/docs/conf/.passwd
AuthzSVNAccessFile /svn/docs/conf/authz
Require valid-user
</Location>
# httpd -t
创建用户:
# htpasswd -c -m /svn/docs/conf/.passwd marion --> 123456
# htpasswd -m /svn/docs/conf/.passwd keyso --> abcdef
让apache用户对/svn/docs目录具有写权限:
# setfacl -d -m user:apache:rw /svn/docs
# getfacl /svn/docs
# systemctl start httpd.service
# systemctl enable httpd.service
通过浏览器访问SVN服务器:
通过TortoiseSVN访问: