服务器端SVN部署及基本使用

	在多人协同开发中,有一个必不可少的工具就是SVN/git,它能帮助我们更好地管理项目代码。现在就来学习一下怎么在服务端部署SVN。
  • 系统:centos7.2
  1. 安装SVN服务端
yum -y install subversion
  1. 查看安装路径等信息
rpm -ql subversion
  1. 创建版本库目录
mkdir /var/svn/svnrepos
  • 在这里仅是创建目录,用于存储多个SVN版本库,与SVN本身无关,和普通目录一样
  1. 创建svn版本库
svnadmin create /var/svn/svnrepos/robin
  1. 修改配置
    进入版本库目录(在我这里是robin), 可以看见如下文件信息:
    在这里插入图片描述
    进入到配置目录conf下 ,可以看见如下文件信息:
    在这里插入图片描述
    authz:负责帐号权限的管理,控制帐号读写权限,也可以帐号进行分组
    passwd:负责帐号和密码的用户名单管理
    svnserve.conf:svn服务器配置文件
    1)、设置分组、权限及帐户名
    具体修改如下:
    在这里插入图片描述
    第一部分在groups区创建分组admin,other各包含用户root1,root2和robin1,robin2
    第二部分设置权限:admin组内用户在当前版本库下拥有读写权限
    第三部分设置权限:other组内用户在当前版本库的test目录下拥有读写权限,则对应的svn地址为svn://svn域名/版本库/test
  • 加@时表示设置分组用户的权限,不加@表示设置单个用户的权限

     2)、设置完权限后,设置帐户密码
    

    在这里插入图片描述
    等号左边表示帐户,右边表示密码
    3)、修改SVN服务器配置
    vim svnserve.conf在这里插入图片描述
    解开图中四句的注释即可:

    anon-access表示匿名用户权限

    auth-access表示鉴权用户权限

    接受三种参数值:none:拒绝访问;write:读写权限,read:只读权限

    "password-db = passwd"表示指定帐户密码文件

    "authz-db = authz"表示帐户及权限文件
    (在后面两句中可以指定其他文件来储存帐户、密码及权限,但文件中的内容仍需按原有格式书写)

  1. 关闭防火墙
    很多情况下服务端安装完成,配置好后,无法连接SVN服务器,均是防火墙问题。
    关闭防火墙的命令因操作系统而异,网上有很多教程,这里就不再一一赘述了。
  2. 启动SVN服务
svnserve -d -r /var/svn/svnrepos

如报错,切换至根目录下执行该命令
在这里插入图片描述
查看svnserve进程

ps aux|grep svnserve

在这里插入图片描述
尝试本地检出:
在这里插入图片描述
8. 配置服务端版本库更新至web目录
在这里插入图片描述
由于我之前已经设置过一次,下面报错了。下面还是以之前设置的版本库继续
在这里插入图片描述
9. 使用钩子进行SVN自动更新到WEB目录
1)、cd var/svn/svnrepos/1.0/hooks
在这里插入图片描述
2)、cp post-commit.tmpl post-commit #将原文件复制出来,以作备份,svn将要执行的是post-commit文件
在这里插入图片描述
3)、vim post-commit
编辑如下:
注释最后三行:
在这里插入图片描述
加上自己要执行的同步的命令:

export LANG=zh_CN.UTF-8				#若客户端和服务器编码不一样会出现同步失败
WEB=/usr/local/apache/htdocs/			#目标web项目路径
svn update $WEB								#yum安装或已注册为svn服务的情况下可这样使用,否则需要输入完整路径,如:/usr/bin/svn $WEB即上一行所定义的web项目路径

设置post-commit文件权限:

chmod 777 post-commit

在这里插入图片描述
10. 将SVN设置开机自启动
先查找svn命令地址

which svnserve

在这里插入图片描述
在这里插入图片描述
检验一下:
本地仓库编辑一份test.php
在这里插入图片描述
查看Web目录下文件:
在这里插入图片描述

代码更新svn

$output = @shell_exec("svn up 你的web目录 --username user(你的svn用户名) --password pwd(你的svn密码) --no-auth-cache 2>&1");
        echo '<pre>';
        var_dump($output);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值