Linux Centos搭建SVN服务器笔记
0x00 前言
文章中的文字可能存在语法错误以及标点错误,请谅解;
如果在文章中发现代码错误或其它问题请告知,感谢!
该演示运行的Linux发行版本 (#cat /etc/issue
):CentOS release 6.8 (Final)
该演示运行的Linux内核信息 (#cat /proc/version
):Linux version 2.6.32-642.15.1.el6.x86_64 (mockbuild@c1bm.rdu2.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Fri Feb 24 14:31:22 UTC 2017
0x01 SVN服务器搭建过程
如果将Centos服务器接入到某局域网后需要改IP等信息,可以参见此链接:https://blog.csdn.net/qq_41875147/article/details/81144327
1 安装:#yum install subversion
2 查看服务器SVN版本(判断是否安装成功):#svnserve --version
3 建立SVN库:#mkdir /opt/svn
#mkdir /opt/svn/repos
#svnadmin create /opt/svn/repos
执行上面的命令后,自动在repos下建立多个文件, 分别是conf, db,format,hooks, locks, README.txt。
hooks目录:放置hook脚本文件的目录
locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端
format目录:是一个文本文件,里边只放了一个整数,表示当前文件库配置的版本号
conf目录:是这个仓库配置文件(仓库用户访问账户,权限)
4 配置文件设置
1)设置passwd
[users]
# harry = harryssecret
# sally = sallyssecret
test = 123456
这样我们就建立了test用户, 123456密码
当然也可以设置多个账号及密码:
[users]
# harry = harryssecret
# sally = sallyssecret
admin = 134234
test1 = 123456
test2 = 654321
2)设置权限authz(配置新用户的授权文件)
[repos:/]
test = rw
意思是test用户对/svn/repos/目录下所有文件有读写权限,当然也可以限定,例如[repos:/datafile] ,只能访问该目录下datafile目录。
另外,设置用户组和用户方式如下:
[groups]
admin = wangqingchuan,jiangzheng,wangrui
member = yanyan,renyuqi,cuikeqiang,liuchen,songxianming
[repos:/] #只能访问该目录
@admin = rw #该组用户有读写
@member = r #该组用户只有只读
*= #表示除了上面设置的权限用户组以外,其他所有用户都设置空权限,空权限表示禁止访问本目录。
3) 最后设定svnserv.conf
[genernal]
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = passwd
authz-db = authz # 访问控制文件
realm = /opt/svn/repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
注意以上所有语句都必须顶格写, 左侧不能留空格, 否则会出错。
5 启动SVN:#svnserve -d -r /opt/svn/repos
或#svnserve -d -r /opt/svn
注意:当更改svnserver.conf时需要重启SVN服务,更改authz,passwd文件时则不需要重启服务。
另外,SVN默认端口为:3690,如果已经有svn在运行,可以换一个端口运行,例如:#svnserve -d -r /opt/svn/repos --listen-port 3391
6 配置防火墙端口
首先要明确CentOS7的默认防火墙为firewallD。若SVN的默认端口为3690没有打开则会报错:#firewall-cmd --permanent -add-port=3690/tcp
#sudo firewall-cmd --reload
或者当然直接把防火墙关闭,不过会有安全性风险:#service iptables stop
0x02 SVN客户端连接
Windows下客户端(插件)安装可参考这篇文章,注意若在本地进行SVN更新的话,会自动覆盖掉原来的文件,所以可以先备份文件,再选择SVN更新:https://www.cnblogs.com/ygj0930/p/6623148.html
Linux下客户端连接可以参考这篇文章的后半部分:https://www.cnblogs.com/weifeng1463/p/7593729.html
0x03 本地连接到SVN服务器可能遇到的问题小结
“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败”
我们在本地checkout项目后,会出现“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败”错误,解决方法可以参照以下部分:
1 查看是否开启了防火墙
解决方法:
1)关闭防火墙;
2)或开放3690端口。
参见0x01小节第6步骤。
2.查看是否是SVN服务器配置问题
解决方法:
检查authz、passwd、svnserve.conf配置文件是否有误。
3.SVN未启动
解决方法:
启动SVN服务。
4.SVN客户端残留错误的历史数据
解决方法:
清除认证数据等(参见https://blog.csdn.net/zhouchenxuan/article/details/71249655,)。
“Authorization failed”
出现authorization failed异常,一般都是authz文件或者svnserve.conf里,用户组或者用户权限没有配置好,例如A用户只有访问DATA_TEAM/ProjectA的权限,客户端SVN 版本库URL却输入svn://*****/DATA_TEAM/ProjectB,可能会导致出现该问题。输入正确的SVN URL或修改上述两个文件解决该问题。
还有一种可能是密码输入错误问题,此时我们需要清除一下svn的缓存,解决方法见本小结第一个问题的第4个解决方法的连接。
0x04 官网以及SVN中文手册
官网中文地址:https://tortoisesvn.net/index.zh.html
另外,如果想进一步的了解SVN,可以阅读官网上的中文手册:https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/t/to/tortoisesvn/1.13.1/Documentation/TortoiseSVN-1.13.1-zh_CN.pdf
以上。
参考文档:
1.http://www.blogjava.net/nkjava/archive/2011/08/29/357502.html
2.https://www.cnblogs.com/weifeng1463/p/7593729.html
3.https://blog.csdn.net/u012486840/article/details/52524389
4.https://blog.csdn.net/weixin_42418158/article/details/95982642
5.https://blog.csdn.net/zhouchenxuan/article/details/71249655
还没有评论,来说两句吧...