zoukankan      html  css  js  c++  java
  • 在linux上搭建SVN服务器并自动更新至WEB目录

    1、仓库放在 /var/svn/ 目录下,并且仓库名为 project

    2、创建用户组user,该组下添加两个成员user1、user2,密码直接用用户名,两用户可以checkout代码和提交代码

    3、利用SVN的钩子实现当仓库的代码更新的时候自动同步至我们的web目录,在这里,我的web目录在 /var/www/html 下

    一、搭建svn环境并创建仓库:

    1、安装Subversion:

      yum install -y subversion

    2、检测是否安装成功(查看svn版本号)

      svnserve --version

    3、创建版本库

      先建目录 mkdir /var/svn

      CD到这个目录 cd /var/svn

      创建版本库 svnadmin create /var/svn/project cd project (会看到自动生成的版本库文件 conf db format hooks locks README.txt)

      

    二、创建用户组及用户:

    1、 进入版本库中的配置目录conf(三个文件): svn服务综合配置文件(svnserve.conf)、 用户名口令文件(passwd)、权限配置文件(authz)。

    2、修改权限配置文件:vim authz

      

    3、配置用户名命令文件:vim passwd

      

    4、配置SVN服务综合配置文件svnserve.conf

      找到以下配置项,将前面的#号去掉,然后做相应的配置

       anon-access = none 匿名用户访问权限:无

      auth-access = write 普通用户访问权限:读、写

      password-db = passwd 密码文件

      authz-db = authz 权限配置文件

      realm = /var/svn/project 版本库所在

      注意:所有以上的配置项都需要顶格,即前面不能预留空格,否则报错

    5、启动svn服务:

      svnserve -d -r /var/svn

      如果提示:svnserve: E000098: Can't bind server socket: Address already in use  

      证明现在svn已经被启动了,由于我们修改了配置文件,因此要重启svn服务

      停止svn服务 killall svnserve

      再运行 svnserve -d -r /var/svn,进行启动服务  

    6、测试服务器:

       我们在web目录测试(/www/html)

       cd //www/html

       svn co svn://localhost/project (如果提示:Checked out revision 1. 表示checkout成功)

      我们添加新文件来测试是否提交成功

      cd //www/html

      touch index.php 

      svn add index.php  成功的话会显示 (A index.php)

      svn commit index.php -m "测试提交文件" (如果成功会显示:Adding index.php Transmitting file data . Committed revision 2. 则表示我们svn服务器搭建成功!文件已经能够推送了。)

    7、本地拉取、推送

      

      

      输入用户名称和密码(如果失败去看看 端口3690是否被禁用 )

    三、实现svn更新自动同步到web目录:

      1、在web目录中checkout版本库

      这一步算是比较关键的一步了,当时我搭建的时候试了无数次,就是缺少了这一步。把刚才checkout的版本库删掉,我们来一次比较正式的checkout:

      svn co svn://localhost/project /www/html --username user1(SVN账号) --user1(SVN密码)

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

      cd /var/svn/project/hooks

      vim post-commit

      //在该文件里添加如下代码,保存

      #!/bin/sh

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

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

      export LANG=en_US.utf8

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

      WEB_PATH=/www/html //web目录,如果你的不同,可以改

      //这里的用户随便一个就好

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

      保存退出。

      修改post-commit用户为www目录用户

      chown apache:apache post-commit //我的 /home/www 的用户组和所有者都是apache

      给post-commit 执行权限:

      chmod 755 post-commit

      本博客主要参考了:http://blog.csdn.net/baidu_30000217/article/details/51396016?locationNum=1

  • 相关阅读:
    博客园代码
    前端
    1338. Reduce Array Size to The Half
    1220. Count Vowels Permutation
    363. Max Sum of Rectangle No Larger Than K
    366. Find Leaves of Binary Tree
    443. String Compression
    8 · Rotate String
    886. Possible Bipartition
    LT 183 wood cut
  • 原文地址:https://www.cnblogs.com/liuxd/p/7702896.html
Copyright © 2011-2022 走看看