服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|

CentOS上SVN服务器端程序的安装与使用教程

2019-07-16 20:35cnblogs霍啸林 Centos

SVN是一款高人气的软件项目版本控制系统,由于其在Windows的客户端的简易操作,在Git的浪潮中仍然保有很多的用户数量,这里我们就来看一下CentOS上SVN服务器端程序的安装与使用教程

1.环境
centos6.4

2.安装svn
 

复制代码

代码如下:


yum -y install subversion


3.配置
建立版本库目录

复制代码

代码如下:


mkdir /www/svndata
svnserve -d -r /www/svndata


4.建立版本库
创建一个新的Subversion项目

复制代码

代码如下:


svnadmin create /var/www/svndata/njlrxx


配置允许用户jiqing访问

复制代码

代码如下:


cd /var/www/svndata/njlrxx/conf
vi svnserve.conf
anon-access=none
auth-access=write
password-db=passwd


注:修改的文件前面不能有空格,否则启动svn server出错

复制代码

代码如下:


vi passwd
[users]
#<用户1> = <密码1>
#<用户2> = <密码2>
jiqing=123456


5.客户端连接

复制代码

代码如下:


svn co svn://ip/njlrxx


用户名:jiqing
密码:123456

 

6.实现SVN与WEB同步,可以CO一个出来,也可以直接配在仓库中
(1)设置WEB服务器根目录为/var/www/webroot
(2)checkout一份SVN
 

复制代码

代码如下:


svn co svn://localhost/njlrxx /var/www/webroot/njlrxx


修改权限为WEB用户

复制代码

代码如下:


chown -R apache:apache /var/www/webroot/njlrxx


(3)建立同步脚本

复制代码

代码如下:


cd /var/www/svndata/njlrxx/hooks/
cp post-commit.tmpl post-commit


编辑post-commit,在文件最后添加以下内容

复制代码

代码如下:


REPOS="$1"
REV="$2"
BASEPATH=/var/www/webroot/njlrxx
WEBPATH="$BASEPATH/"
export LANG=zh_CN.UTF-8
svn update $WEBPATH --username jiqing --password 123456 --no-auth-cache


增加脚本执行权限

复制代码

代码如下:


chmod +x post-commit


最后操作是关闭服务然再打开服务:
svn服务的关闭:

复制代码

代码如下:


killall svnserve


svn开启:

复制代码

代码如下:


svnserve -d -r /var/www/svndata

 

7.如何支持匿名用户访问
方法一:
在svn安装目录下找到,conf/httpd.conf文件,如果是手动集成apache的则找到apache的配置文件。
找到中的
 

复制代码

代码如下:


Require valid-user


改为

复制代码

代码如下:


<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>


重启服务,这样设置以后,svn下的所有内容都不在需要验证用户,可以直接访问。
缺点:svn自身的访问权限设置失效了。更多的时候我们希望用户先用匿名方式尝试访问,如果不行,在输入用户名和密码验证访问。

 

方法二:
在配置文件中加入
 

复制代码

代码如下:


Satisfy Any


加入了Satisfy Any的设置,其表示在同时启用了Allow(允许)和Require的情况下,指定相关策略的,一共有两个备选值,All表示用户必须同时满足Allow和Require的条件,而Any则是满足其中之一即可。
Satisfy Any表示允许先用匿名方式尝试访问,并根据svnauthz对匿名用户的控制给予访问权限。

 

PS:SVN自动同步程序执行流程:
1、用户提交文件到SVN服务器,提交操作成功后触发post-commit脚本
2、在post-commit版本文件中使用php_script.php执行PHP脚本
3、在PHP脚本中通过exec系统调用更新服务器上的版本库工作副本
4、根据更新操作结果日志,对另一个SVN版本库进行对应的操作处理

延伸 · 阅读

精彩推荐
  • Centos运维老鸟教你安装centos6.5选择安装包的方法

    运维老鸟教你安装centos6.5选择安装包的方法

    今天小编将为大家带来的是运维老鸟教你安装centos6.5选择安装包的方法;希望可以帮助到大家,有需要的朋友一起去看看吧...

    centos之家4892019-06-20
  • CentosCentOS7上如何添加Swap交换空间

    CentOS7上如何添加Swap交换空间

    一些朋友反馈说不知道CentOS7上如何添加Swap交换空间;下面小编就为大家带来CentOS 7上添加Swap交换空间的方法;有需要的朋友可以去看看吧...

    服务器之家3792019-07-08
  • CentosCentos进程状态详解

    Centos进程状态详解

    今天,小编为大家分享的是Centos进程状态详解;希望对大家的学习会有帮助;有需要的朋友可以过来看看...

    服务器之家1442019-07-02
  • CentosCentOS中命令选项及参数简介两者区别的讲解

    CentOS中命令选项及参数简介两者区别的讲解

    有些朋友在学习Linux命令时,包括在学习Windows下的一些命令时,区分不清“选项”和“参数”的概念,也不明白Linux命令下选项及参数的格式;下面小编就为大家带来CentOS中命令选项及参数简介两者区别的讲解...

    ZZVIPS1782019-06-29
  • CentosCentOS下DNS的基本和高级配置详解

    CentOS下DNS的基本和高级配置详解

    今天小编将为大家带来的是CentOS下DNS的基本和高级配置详解。希望能够帮助到大家,有需要的朋友一起去看看吧...

    CentOS之家1382019-06-12
  • CentosCentOS下管理日志服务详解

    CentOS下管理日志服务详解

    今天小编为大家带来的是CentOS下管理日志服务详解;希望对大家会有帮助,有需要的朋友一起去看看吧...

    CentOS之家3262019-06-19
  • CentosCentOS下cp如何直接覆盖命令?CentOS下cp直接覆盖命令的方法

    CentOS下cp如何直接覆盖命令?CentOS下cp直接覆盖命令的方法

    很多朋友都不了解CentOS下cp如何直接覆盖命令?下面小编为大家带来的是CentOS下cp直接覆盖命令的方法,希望对大家会有帮助,有需要的朋友一起去看看吧...

    CentOS之家4622019-06-24
  • CentosCentOS下的系统负荷详解

    CentOS下的系统负荷详解

    今天小编将为大家带来的是CentOS下的系统负荷详解;希望对大家会有帮助,有需要的朋友一起去看看吧...

    脚本之家1902019-06-09