Linux(CentOS7)下搭建SVN服务器

系统环境:centos7.5 64位

第一步:通过yum命令安装svnserve,命令如下:

yum -y install subversion

此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行

若需查看svn安装位置,可以用以下命令:

rpm -ql subversion

使用以下命令查看svn是否安装成功

svnserve --version

000.png

第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)

选择在var路径下创建版本库,当前处于根目录下,一次性创建如下:

mkdir /var/svnrepos

第三步:创建svn版本库

在第二步建立的路径基础上,创建版本库,命令如下:

svnadmin create /var/svnrepos/xxxx

(xxxx为你预期的版本库名称,可自定义)

创建成功后,进入xxxx目录下

cd /var/svnrepos/xxxx

进入目录,可以看见如下文件信息:

total 24
drwxr-xr-x 2 root root 4096 Mar 19 22:23 conf
drwxr-sr-x 6 root root 4096 Mar 19 22:37 db
-r--r--r-- 1 root root    2 Mar 19 22:02 format
drwxr-xr-x 2 root root 4096 Mar 19 22:02 hooks
drwxr-xr-x 2 root root 4096 Mar 19 22:02 locks
-rw-r--r-- 1 root root  229 Mar 19 22:02 README.txt

第四步:配置修改

进入已经创建好的版本库目录下,也就是前文说创建的xxxx,进入conf目录下

cd /var/svnrepos/xxxx/conf

conf目录下,一共存放三份重要的配置文件,如下:

total 12
-rw-r--r-- 1 root root 1101 Mar 19 22:04 authz
-rw-r--r-- 1 root root  328 Mar 19 22:05 passwd
-rw-r--r-- 1 root root 3074 Mar 19 22:23 svnserve.conf

authz:负责账号权限的管理,控制账号是否读写权限

passwd:负责账号和密码的用户名单管理

svnserve.conf:svn版本库配置文件,svn的svnserve.conf 对于每个仓库(版本库),有一个独立的配置文件。另外要注意,即使svnserve服务已经运行,修改配置文件或者用户、权限管理文件,保存后马上生效,不需要重启服务。

1.编辑 authz 文件(注意:[/]也是必须的

111.png

[/]:表示根目录,即 /var/svnrepos

luo = rw:表示用户luo对根目录具有读写权限

2.编辑 passwd 文件

222.png

如上所示,用户名为:luo,认证密码为:luo123456

3.编辑 svnserve.conf 文件(注意:以上每个配置文件中 配置的前面不能有空格,一定要顶格写

333.png

anon-access = none:表示禁止匿名用户访问(即 定义非授权用户的访问权限),这里默认是read 如果用默认read的话 那么svn客户端show log(显示日志)的时候 看不到提交作者、提交备注、提交日期、只显示一个no date等。。

auth-access = write:表示授权用户拥有读写权限

password-db = passswd:指定用户名口令文件,即 passwd 文件

authz-db = authz:指定权限配置文件,即 authz 文件

realm = /var/svnrepos:指定svn仓库中 某个项目的版本库的认证域 即:在登录时提示的认证域的svn用户名称、密码等。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件。

比如: realm = /var/svnrepos/xxx


第五步:防火墙相关配置关闭或开启或停止,centos6和centos7防火墙的相关配置不一样 提供以下连接供参考。

https://blog.csdn.net/Post_Yuan/article/details/78603212

https://www.cnblogs.com/moxiaoan/p/5683743.html

多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题【注意:如果是阿里云,腾讯云的服务器,还需在安全组添加端口开启规则】

第六步:启动svn服务器

svnserve -d -r /var/svnrepos

其中-d参数表示以守护进程方式启动(即在后台运行),而-r参数表示将/var/svnrepos目录指定为代码库的根目录。这样,当客户端使用类似 svn://192.168.0.1/xxxx这样内容的URL来访问服务器时候,其所访问到的真实代码库,其实就是/var/svnrepos/xxxx

启动成功后,可用ps -ef查看服务启动是否成功

444.png

第七步:客户端访问svn服务器

在windows客户端,输入地址:svn://ip地址:3690/xxxx   (iP地址为你linux的ip,xxxx为前文创建的版本库名称,3690为svn默认端口号)

弹出输入用户名和密码,输入即可访问

或者在linux服务器输入命令测试:

svn co svn://ip地址:3690/xxxx

如下为例子:

555.png


尾声:如何关闭SVN服务 

使用以下命令查找进程 

ps -ef | grep svn

然后使用Kill命令杀死进程 

kill -s 9 64434

64434为进程ID

或者用 killall svnserve 命令  这个命令是将svn相关的服务进程全部杀掉,也就是停止 svn服务


安装中遇到的问题小结:

问题1:执行svn命令:svn co svn://ip地址:3690/xxxx报错如下

666.png

这是因为修改svnserve.conf时,打开注释时,配置的前面有空格,应该顶格写。修改后即可


问题2:输入账号密码后,提示 svn: Authorization failed解决办法

把authz 文件 [/] 改为 [\] 试试






可参考以下链接:

svn服务端搭建:https://www.cnblogs.com/-mrl/p/8980244.html

svn相关参数详解:https://www.cnblogs.com/lteal/p/4434859.html


声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

小周博客
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

精彩评论

全部回复 0人评论 7,777人参与

loading