网上Linux安装SVN的教程太多了,本文主要是重点写明一些在本次安装过程中主要遇到过的问题:
1.Centos7与Centos6安装上的不同(主要是防火墙的设置)
2.服务器未开通端口3690(svn的默认端口)
3.启动svn路径有误,./svnserve -d -r /data/svn(版本库的根目录),路径不对,SVN连不上。
安装过程:
检查是否已安装
# rpm -qa subversion
安装svn服务器:
yum -y install subversion
安装后svn相关的命令如:svnserve svnadmin 等等命令默认在/usr/bin目录下,为了方便可以将这些svn命令复制到自定义的一个文件夹下面,在这里我的目录是/data/svn/version_repository/bin.在/usr/bin目录下使用命令 cp svnserve svnadmin -d /data/svn/version_repository/bin将多个文件(命令)复制到对应的目录。
安装完成后要建立版本库,使用命令:
mkdir -p /data/svn/version_repository
svnadmin create /data/svn/version_repository/
执行后,自动建立version_repository库,查看/data/svn/version_repository/文件夹包含了conf,db,format,hooks,locks,README.txt等文件,说明一个SVN库已经建立。
3. 配置版本库
a.对服务svnserve.conf配置
cd /data/svn/version_repository/conf目录,编辑svnserve.conf,命令为:vim svnerve.conf
添加内容:
[general] #匿名访问的权限,可以是read,write,none,默认为read anon-access=none #使授权用户有写权限 auth-access=write #密码数据库的路径 password-db=passwd #访问控制文件 authz-db=authz #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字 realm=/version_repository
编辑完,按Esc,然后输入:wq!进行内容保存
注意:这里各标签不能错,并且每行要顶格写,前面不能有空格(以上内容可以不添加,原文件就有,只要放开注释)
b.用户密码配置
cd data/svn/version_repository/conf,编辑passwd,
添加内容:
[users] # harry = harryssecret # sally = sallyssecret #用户名=密码 cb=123456
编辑完,按Esc,然后输入:wq!进行内容保存
c.权限控制authz配置
添加内容:
[/] cb=rw //给该用户访问所有库的权限 或 [version_repository:/] //version_repository库的根目录权限 cb=rw
/ 表示根目录及以下,根目录是svnserve启动时指定的,我们指定的是/data/svn
/ 就是指对全部版本库都具有权限
version_repository:/ 表示对库version_repository的根目录设置权限
PS:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。
d.配置防火墙端口(如果需要)
不一定每个人都需要设置,可以先测试后再看是否需要打开端口
# vi /etc/sysconfig/iptables
Centos7以上会提示没有iptables文件或者需要文件重启防火墙服务
service iptables restart
会提示没有iptables服务,百度后发现操作系统Centos7以上没有iptables,改为firewall服务,用firewall试了几次之后发现不好使,然后装了iptables服务,下面介绍在Centos7下面怎么使用iptables服务。
1.关闭firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
2.安装iptables防火墙
yum install iptables-services
编辑iptables文件,vi /etc/sysconfig/iptables
将需要防火墙放开的端口加入:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
按Esc,输入:wq!保存退出
systemctl restart iptables.service #最后重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
4. 查看
a.启动SVN
cd /data/svn/version_repository/bin
使用命令:./svnserve -d -r /data/svn(只能到这一层),不然重启不成功
b.查看svn进程
c.检测svn端口
LISIEN表示正常
d.停止重启svn
kill -9 svn进程号,如:
然后使用命令:./svnserve -d -r /data/svn
配置完以上信息后,用svn客户端访问svn服务还是报错
,这是由于你所购买的服务器并没有开通3690端口,我当时买的是阿里云服务器,不过不同类型的云服务器配置大致相同,以下就介绍一下阿里云服务器开通3690端口的过程:
5. 配置服务器端口
配置完后发现svn服务可以访问了