Centos 7 安装svn服务器

一,svn

1,通过yum 安装subversion

yum install subversion

查看安装路径

which svnserve

#/usr/bin/svnserve

查看是否安装成功

svnserve --version

#svnserve, version 1.7.14 (r1542130)

#   compiled Apr 11 2018, 02:40:28

#Copyright (C) 2013 The Apache Software Foundation.

...

2,建立版本库目录

a,如果创建的版本库目录不是/var/svn/则需修改OPTIONS参数的值为创建的版本库目录路径

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

vim /etc/sysconfig/svnserve


# OPTIONS is used to pass command-line arguments to svnserve.

#

# Specify the repository location in -r parameter:

OPTIONS="-r /var/svn"

b,建立版本库目录

mkdir -p /var/svn/

c,创建版本库项目

svnadmin create /var/svn/svnrepos


Centos 7 安装svn服务器_第1张图片
svn版本库项目目录

3,配置 创建用户组或用户

cd /var/svn/svnrepos/conf


Centos 7 安装svn服务器_第2张图片

a,添加用户和密码 admin  admin

vim passwd

添加admin = admin

b,编辑用户admin的权限

vim authz

#添加如下两行

[/]

admin = rw

c,修改该版本库的配置文件-打开注释,修改realm的版本库目录

注意:每一行顶格写,没有空格

vim svnserve.conf

[general]

anon-access = none                    #控制非鉴权用户访问版本库的权限

auth-access = write                    #控制鉴权用户访问版本库的权限

password-db = passwd                  #指定用户名口令文件名

authz-db = authz                      #指定权限配置文件名

realm = /var/svn/svnrepos             #指定版本库的认证域,即在登录时提示的认证域名称

4,开启svn服务

systemctl start svnserve.service

检查svn服务是否启动成功。

 ps aux | grep svn


通过netstat可以看到SVN打开了3690端口。

netstat -tnlp


Centos 7 安装svn服务器_第3张图片

设置成开机启动

systemctl enable svnserve.service


5,win 测试连接

如果显示


Centos 7 安装svn服务器_第4张图片

用systemctl检查服务器的防火墙配置:

firewall-cmd --list-all

如果没有telnet服务和3690端口。增加telnet服务器和3690端口:

firewall-cmd --permanent --add-service=telnet

firewall-cmd --permanent --add-port=3690/tcp

firewall-cmd --reload

客户端再用telnet,就可以了

二,svn更新自动同步到web目录

1、在项目目录(/home/wenroot/demo)中checkout版本库

svn co svn://localhost/project /home/webroot/demo --username lsgoweb1 --password lsgoweb1

#进入/var/svn/project/hooks下,建立post-commit文件:

cd /var/svn/project/hooks

cp post-commit.tmpl post-commit   #复制tmpl文件为钩子文件

vim post-commit

#在该文件里添加如下代码并保存

#!/bin/sh

#设定环境变量,如果没有设定可能会出现update报错

#设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK

export LANG=en_US.utf8

SVN_PATH=/usr/bin/svn

WEB_PATH=/home/webroot/demo

$SVN_PATH update $WEB_PATH --username 'lsgoweb1' --password 'lsgoweb1' --no-auth-cache

#添加后wq保存退出

####post-commit添加的代码解释####

#!/bin/sh #设定环境变量,如果没有设定可能会出现update报错

export LANG=en_US.utf8 #设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK

SVN_PATH=/usr/bin/svn #这里不用改

WEB_PATH=/home/webroot/demo #web目录(项目目录),如果你的不同,可以改

$SVN_PATH update $WEB_PATH --username 'lsgoweb1' --password 'lsgoweb1' --no-auth-cache #填写自动更新使用的用户账号密码,这里的用户随便选一个就好

2.修改post-commit文件的属主属组与你的项目目录属主属组相同(一般不用改 都是root)

chown root:root post-commit

3.给post-commit 执行权限:

chmod 755 post-commit

4.Checkout一份代码到web服务器上

cd /home/repos

/var/svn/svnrepos checkout svn://127.0.0.1/svnrepos

你可能感兴趣的:(Centos 7 安装svn服务器)