Linux下搭建SVN服务器
- 简介
 - 第一步:通过yum命令安装svnserve,命令如下:
 - 第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)
 - 第三步:创建svn版本库
 - 第四步:配置修改
 - 1.编辑 authz 文件(注意:[/]也是必须的)
 - 2.编辑 passwd 文件
 - 3.编辑 svnserve.conf 文件 ==(注意:配置的前面不能有空格,一定要顶格写)==
 
- 第五步:防火墙开启(这里以iptable防火墻为例)
 - 第六步:启动svn服务器
 - 第七步:客户端访问svn服务器
 - 小结
 
简介
在Linux下搭建SVN服务器
 系统环境:centos7.2
第一步:通过yum命令安装svnserve,命令如下:
yum -y install subversion
 
此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行
 若需查看svn安装位置,可以用以下命令:
rpm -ql subversion
 
检测是否安装成功(查看svn版本号)
svnserve --version
 

第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)
选择在var路径下创建版本库,当前处于根目录下,一次性创建如下:
mkdir /var/svn
 
第三步:创建svn版本库
在第二步建立的路径基础上,创建版本库,命令如下:(beijing为你预期的版本库名称,可自定义)
svnadmin create /var/svn/beijing
 
创建成功后,进入beijing目录下
cd /var/svn/beijing
 
进入目录,可以看见如下文件信息:
total 24
drwxr-xr-x 2 root root 4096 May  2 13:48 conf
drwxr-sr-x 6 root root 4096 May  2 13:48 db
-r--r--r-- 1 root root    2 May  2 13:48 format
drwxr-xr-x 2 root root 4096 May  2 13:48 hooks
drwxr-xr-x 2 root root 4096 May  2 13:48 locks
-rw-r--r-- 1 root root  229 May  2 13:48 README.txt
 
第四步:配置修改
进入已经创建好的版本库目录下,也就是前文说创建的beijing,进入conf
cd /var/svn/beijing/conf
 
conf目录下,一共存放三份重要的配置文件,如下:
total 12
-rw-r--r-- 1 root root 1080 May  2 13:48 authz
-rw-r--r-- 1 root root  309 May  2 13:48 passwd
-rw-r--r-- 1 root root 3090 May  2 13:48 svnserve.conf
 
authz:负责账号权限的管理,控制账号是否读写权限
 passwd:负责账号和密码的用户名单管理
 svnserve.conf:svn服务器配置文件
1.编辑 authz 文件(注意:[/]也是必须的)

 [/]:表示根目录,即 /var/svnrepos
 luo = rw:表示用户luo对根目录具有读写权限。
2.编辑 passwd 文件

 如上所示,用户名为:luo,认证密码为:luo123456
3.编辑 svnserve.conf 文件 (注意:配置的前面不能有空格,一定要顶格写)

 anon-access = none:表示禁止匿名用户访问。
 auth-access = write:表示授权用户拥有读写权限。
 password-db = passswd:指定用户名口令文件,即 passwd 文件。
 authz-db = authz:指定权限配置文件,即 authz 文件。
 realm = /var/svn:指定认证域,即 /var/svn 目录。
 注意:所有以上的配置项都需要顶格,即前面不能预留空格,否则报错
实际配置如下
#表示禁止匿名用户访问
anon-access = none
#表示授权用户拥有读写权限
auth-access = write#指定用户名口令文件,即 passwd 文件
password-db = passwd#指定权限配置文件,即 authz 文件
authz-db = authz#指定认证域,即 /var/svn 目录
realm = /var/svn/beijing
 
第五步:防火墙开启(这里以iptable防火墻为例)
多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题【注意:如果是阿里云,腾讯云的服务器,还需在安全组添加端口开启规则】
vi /etc/sysconfig/iptables
 
添加配置信息
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
 
保存退出
systemctl restart iptables.service #重启防火墙使配置生效
 
第六步:启动svn服务器
svnserve -d -r /var/svn 
 
如果提示:svnserve: E000098: Can’t bind server socket: Address already in use 证明现在svn已经被启动了,由于我们修改了配置文件,因此要重启svn服务 停止svn服务 killall svnserve 再运行 svnserve -d -r /var/svn,进行启动服务
启动成功后,可用ps -aux查看服务启动是否成功
ps -ef | grep 'svnserve'
netstat -ln |grep 3690
 

第七步:客户端访问svn服务器
在windows客户端,输入地址:svn://ip地址:3690/xxxx (iP地址为你linux的ip,xxxx为前文创建的版本库名称,3690为svn默认端口)
 弹出输入用户名和密码,输入即可访问
 或者在linux服务器输入命令测试:
svn co svn://ip地址:3690/xxxx
 

 至此结束。
小结
问题1:执行svn命令:svn co svn://ip地址:3690/xxxx报错如下
 
 这是因为修改svnserve.conf时,打开注释时,配置的前面有空格,应该顶格写。修改后即可
问题2:输入账号密码后,提示 svn: Authorization failed解决办法
 把authz 文件 [/] 改为 [] 试试


















