linux服务器如何搭建svn服务端? 2018-07-31

    参考网上文献:https://www.cnblogs.com/chenqionghe/p/4527763.html


    我是百度学来的。基本看着这篇相对比较完整。有一丢丢少了点东西导致钩子出问题。 没事。稍等我们就给指出来。。


    先来看下上传代码的流程  首先,我们在客户端(程序员的电脑。)写完代码,然后提交到svn(服务端) ,这时候我们的svn版本里面已经有我们刚提交的代码了,然后我们在配置个钩子,把代码钩到我们的web项目里面去。这样我们访问web目录,就能访问到最新的项目代码了。


    image.png


    1. 安装svn

    1 - yum安装 

    #    yum -y install subversion


    2 - 代码库创建 在根目录下创建www目录,里面再创建svndata目录。创建svn库 我们创建test库


    # mkdir -p  /www/svndata

    # svnadmin create /www/svndata/test


    3 - 配置代码库。

    (1) 进入配置文件。

    # cd /www/svndata/test/conf


    (2)设置用户密码  没用过vim编辑器的稍微看一下。例如 i是输入。 :wq 是保存退出等等,,

    # vim passwd

    找到[users] 下面添加一行:   cqh=123456


    (3)设置anthz权限控制 目的是设置哪些用户可以访问哪些目录

    vim authz

    加入以下配置  /就是以下用户可以访问根目录

    [/]

    cqh=rw


    (4)配置svn服务配置。


    vim svnserve.conf 


    anon-acccess=none 前面的#去掉

    anon-acccess=write 前面的#去掉

    password-db=passwd 前面的#去掉

    authz-db=authz 前面的#去掉

    realm = My First Repository 前面的#去掉


    以上选项有的就把#去掉,因为#是注释。去掉就是相当于开起来。。具体参数是什么作用,请看我上面分享的链接。。


    3 - svn相关命令

    启动svn

    # svnserve -d -r /www/svndata


    查看svn进程 

    # ps -ef|grep svn|grep -v grep


    检查svn端口

    # netstat -ln |grep 3690


    停止svn 

    # killall svnserve


    OK 我们如果启动了svn 可以在电脑上尝试检出一下。。

    svn仓库地址  svn://你的ip/test

    用户名密码 cqh/123456


    2.设置钩子 自动更新


    第一步,我们创建一个web目录 文章里面写创建在var里面。 根据情况自己定义吧,包括上面svn的文件路径都可以自定义。。,我这里就跟着文章里面的写。


    #mkdir /var/www/html/test


    第二步  进入web目录 然后检出一下

    #cd /var/www/html/test

    #svn checkout svn://localhost/svntest


    OK,web目录创建完了,我们得创建钩子,让钩子把我们客户端提交的东西检出到web目录。。


    我们进入我们svn库的文件、


    # cd /www/svndata/test/hooks/


    然后我们创建一个post-commit文件(钩子脚本)


    # vim post-commit


    并在脚本里面加入以下内容  注意了 链接里没有 #!/bin/sh 所以提交的话会报错 我上面所说的坑就是这个坑。

    #!/bin/sh

    export.UTF-8

    SVN=/usr/bin/svn            #这里配置的是svn安装bin目录下的svn文件

    WEB=/var/www/html/test      #要更新的目录

    $SVN update $WEB --username cqh --password 123456chown -R www:www  $WEB


    给予钩子文件权限 


    # chmod a+x post-commit


    OK,我们svn搭建完毕,剩下的就是测试了。你测试在客户端提交到svn,看看服务器上面的web目录是否有你刚提交的文件,如果有,就是没问题了。如果报错,请根据报错信息直接复制进百度里面搜。答案一大堆。