linux svn 1.7,Linux安装SVN服务端(centos 7 )

步骤一:安装svn服务器

1.安装SVN服务

检查是否已安装

rpm -qa subversion

e918fabc50cd

出现以上内容说明已经安装

安装SVN服务器

yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql

验证安装

cd /etc/httpd/modules

ls | grep svn

e918fabc50cd

出现以上内容说明安装成功

查看版本

svnserve --version

e918fabc50cd

版本号查询

2.代码库创建

安装完成后要建立SVN库

mkdir -p /opt/svn/repositories

svnadmin create /opt/svn/repositories

执行后,自动建立respositories库,查看/opt/svn/respositories文件夹包含了conf,db,format,hooks,locks,README.txt等文件,说明一个SVN库已经建立。

e918fabc50cd

查看respositories库

3.配置版本库

进入上面conf文件夹下,进行配置

用户密码passwd配置

vi + passwd //+表示光标放在文件最低端

修改passwd为一下内容

[users]

# harry = harryssecret

# sally = sallyssecret

xuyunfeng=******

# =

e918fabc50cd

设置账号密码

权限控制authz配置

vi + authz

设置哪些用户可以访问哪些目录,向authz文件追加以下内容

[/]

xuyunfeng=rw //给该用户访问所有库的权限 或 [repositories:/project] //repository库的根目录权限xuyunfeng=rw

# [groups]

# g_admin = admin,thinker

# =

#[:]

# [admintools:/]

# @g_admin = rw //表示admin账号与thinker账号对admintools版本库拥有读写权限

# * = //表示其他用户对admintools版本库无任何权限

# [test:/home/thinker]

# thinker = rw //表示thinker账号对test版本库下/home/thinker文件夹拥有读写权限

# * = r //表示其他用户对test版本库下/home/thinker拥有读权限

/ 表示根目录及以下,根目录是svnserve启动时指定的,我们指定的是/opt/svn;/ 就是指对全部版本库都具有权限

repositories:/ 表示对库repositories的根目录设置权限

tips:

权限配置文件中出现的用户名必须已在用户配置文件中定义。

对权限配置文件的修改立即生效,不必重启svn。

服务svnserve.conf配置

添加一下内容

[general]

#匿名访问的权限,可以是read,write,none,默认为read

anon-access=none

#使授权用户有写权限

auth-access=write

#密码数据库的路径

password-db=passwd

#访问控制文件

authz-db=authz

#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字

realm=/opt/svn/repositories

这里注意各标签不能错,也不能有重复,不然无法连接.

启动SVN

svnserve -d -r /opt/svn/repositories(你的svn所在目录)

//查看SVN进程

ps -ef|grep svn|grep -v grep

//root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories

// 停止重启SVN

killall svnserve //停止

svnserve -d -r /opt/svn/repositories // 启动

步骤二:连接SVN

测试连接

(1) 在本地电脑上安装TortoiseSVN客户端:

成功安装TortoiseSVN后在电脑桌面右键有TortoiseSVN提示;选择Repo-browser;会出现一个地址栏;

(2)在地址栏输入:svn://+服务器IP地址 ;如果安装没问题的话就会进入服务器的资源库

如果连接不上,采用以下操作

1.确认SVN服务是否已启动

在终端输入命令,显示所有进程信息

ps -ef

e918fabc50cd

image.png

e918fabc50cd

显示这个说明已经启动

或者使用以下命令

ps -aux | grep svnserve

e918fabc50cd

服务已启动

2.查看端口是否开放

在终端输入以下命令 查看当前所有tcp端口

netstat -ntlp

e918fabc50cd

端口已开放

当前SVN端口为3690

查看端口号是否能够访问2种方式

1. 客户端,电脑(windows)打开cmd命令行窗口,使用telnet命令查看端口是否开放(需要安装telnet客户端)【控制面板——程序——启用或关闭windows功能中添加】

telnet [IP] [端口号]

e918fabc50cd

image.png

e918fabc50cd

看到这个说明已经成功

2.在服务器终端中输入以下命令,列出对外开放的端口

firewall-cmd --list-ports

查看svn服务端口是否在列表中

e918fabc50cd

image.png

如果端口不在列表中 在终端输入如下命令

firewall-cmd --add-port=3690/tcp --permanent ##永久添加3690端口

如遇到FirewallD is not running 请查看Linux防火墙设置

步骤三:SVN设置开机自启动

Linux服务器端设置svn开机启动

方法一:

(1)在Linux服务器跟目录((/root路径下))创建一个脚本文件

touch svn.sh

2) 进入脚本文件

vim svn.sh

3)添加一下内容

#!/bin/bash

/usr/bin/svnserve -d -r /opt/svn/repositories

解释一下:

这里的svnserve路径保险起见,最好写绝对路径,因为启动的时候,环境变量也许没加载。

绝对路径怎么查?

which svnserve

4)改该脚本的执行权限

chmod 777 svn.sh

(5)加入自动运行

vi /etc/rc.d/rc.local

在末尾添加脚本的路径:

/root/svn.sh

(6)重启Linux服务器,重启后查看svn服务器是否已经开启

ps -ef|grep svnserve

如果显示以下信息表示svn已经开启了:

tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN

方法二:

CentOS 7 的 /etc/rc.d/rc.local 是没有执行权限的, 系统建议创建 systemd service 启动服务

于是查看 systemd 里 svn 的配置文件 /lib/systemd/system/svnserve.service

[Unit]

Description=Subversion protocol daemon

After=syslog.target network.target

[Service]

Type=forking

EnvironmentFile=/etc/sysconfig/svnserve

ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS

[Install]

WantedBy=multi-user.target

找到 svn 的 service 配置文件 /etc/sysconfig/svnserve 编辑配置文件

vi /etc/sysconfig/svnserve

将 OPTIONS="-r /var/svn" 改为 svn 版本库存放的目录,:wq 保存退出

在提示符下输入

systemctl enable svnserve.service

启动服务:

systemctl start svnserve.service

查看服务列表状态

systemctl list-units --type=service

重启服务器,输入

ps -aux | grep 'svn'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值