您的位置:首页 > 运维架构 > Linux

Centos7安装、配置SVN服务,并设置开机自启动

2017-07-03 09:57 567 查看
最近小组工作需要,要搭建一个SVN服务器,服务器版本为Centos7,具体步骤如下:

一、安装SVN

检查是否已经安装:
svn --version


安装:
yum install subversion


创建SVN版本目录:
mkdir -p /server/svn/repo


创建版本库:
svnadmin create /server/svn/repo


进入conf目录(该svn版本库配置文件):
cd /server/svn/repo/conf/


authz文件是权限控制文件,passwd是帐号密码文件,svnserve.conf SVN服务配置文件
设置帐号密码:
vim passwd


在[users]块中添加用户和密码,格式:帐号=密码,如harry = harryssecret
[users]
admin1=admin1
dev1=dev1
dev2=dev2
pro1=pro1
pro2=pro2


设置权限:
vim authz
[groups]
#管理员组
admin = admin1
#开发组
dev = dev1,dev2  #多个用户以逗号分隔
#产品组
pro = pro1,pro2

[/]
@admin = rw  #admin组拥有根目录的读写权限,其中r表示读权限,w表示写权限
* =          #这里的*号表示除admin组的其他人,“=”后为空的话为无任何权限
[/dev]
@dev = rw

[/pro]
@pro = rw


解释一下,[groups]下,设置权限分组,这里有三个组,分别是admin 、dev、pro,admin组有admin1一个人,dev组有dev1、dev2两个人,pro组下有pro1、pro2两个人,[/]表示文件库的根目录,相应的[/dev]和[/pro]分别表示根目录下有dev和pro两个子目录
修改svnserve.conf文件
vim svnserve.conf

打开下面的几个注释:

anon-access = read #匿名用户可读

auth-access = write #授权用户可写

password-db = /server/svn/repo/conf/passwd #使用哪个文件作为账号文件

authz-db = /server/svn/repo/conf/authz #使用哪个文件作为权限文件

realm =/server/svn/repo # 认证空间名,版本库所在目录

启动svn版本库
svnserve -d -r /server/svn/repo/


-d 表示svnserve.exe 将会作为一个服务程序运行在后台,-r表示把/server/svn/repo目录作为根目录

查看启动情况:

二、设置SVN开机自启动

1、subversion默认以/var/svn作为数据根目录,可以通过/etc/sysconfig/svnserve修改这个默认位置。

systemctl cat svnserve.service
#svnserve.service文件的具体地址
# /usr/lib/systemd/system/svnserve.service
[Unit]
Description=Subversion protocol daemon
After=syslog.target network.target

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/svnserve
#也可以用这种方式,这种方式的话就不需要进行第2步的操作了,但本人没试过
#ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid  -d -r /server/svn/repo  #一定要写svnserve命令的绝对路径

#我用的这种方式
ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS

[Install]
WantedBy=multi-user.target


2、我们修改/etc/sysconfig/svnserver
vim /etc/sysconfig/svnserve


将默认目录指定到/server/svn/repo
OPTIONS="-r /server/svn/repo"


3、说明:

[Unit]:服务的说明

Description:描述服务After:描述服务类别

[Service]服务运行参数的设置

Type=forking是后台运行的形式

ExecStart为服务的具体运行命令

ExecReload为重启命令

ExecStop为停止命令

PrivateTmp=True表示给服务分配独立的临时空间注意:

[Service]的启动、重启、停止命令全部要求使用绝对路径

4、服务命令:

启动svnserve服务

systemctl start svnserve.service

设置开机自启动

systemctl enable svnserve.service

停止开机自启动

systemctl disable svnserve.service

查看服务当前状态

systemctl status svnserve.service

重新启动服务

systemctl restart svnserve.service

查看所有已启动的服务

systemctl list-units --type=service

题外话:今天偶然发现两年前写的第一篇博客竟然有两千多的访问量,煞是惊喜,于是便有了写这篇文章的动力,以后有好的东西,会尽量坚持分享,毕竟做笔记很简单,但是抱着负责任的心态写一篇博客不容易!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息