• 最全!Linux服务器下安装SVN,并添加SVN项目,自动更新项目文件到web目录


    注意版本,不同版本命令有点点的不同,遇到要查下命令使用格式
    linux版本:
    subversion版本:
     
     
     
    一: yum 安装 subversion 
    1. yum install subversion
     
    二:运行以下命令查看SVN版本。
    1. svnserve --version
     
    三:按以下步骤创建版本库:(要删除版本库,直接用rm命令即可)
    1. 运行以下命令创建目录。(这个目录是所有SVN项目的总目录,想放哪就在哪建,比如你可以放在/home/www/svn)
      1. mkdir /home/svn
    2. 依次运行以下命令创建版本库。(以后每添加一个SVN项目,重复这步以下的步骤/如: svnadmin create /home/svn/newProjectName
      1. cd /home/svn
      2. svnadmin create /home/svn/testHTML
    3. 依次运行以下命令查看自动生成的版本库文件。
      1. cd /home/svn/testHTML
      2. ll
    Subversion目录说明:
    db目录:所有版本控制的数据存放文件。
    hooks目录:放置hook脚本文件的目录。
    locks目录:用来追踪存取文件库的客户端。
    format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
    conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)。
    运行命令cd conf/进入conf目录(该SVN版本库配置文件)。
    返回结果如下:
    authz:是权限控制文件。
    passwd:是账号密码文件。
    svnserve.conf:SVN服务配置文件。
    按以下步骤设置账号密码:
    1. 运行 vi passwd
    2. 按 i 键进入编辑模式。
    3. 在 [users] 块中添加用户账号和密码,格式:账号=密码,比如示例中的suzhan = redhat(注意等号两端要有一个空格)。
    4. 按 Esc 键退出编辑模式,并输入 :wq 保存并退出。
    按以下步骤设置权限:
    1. 运行 vi authz
    2. 按 i 键进入编辑模式。
    3. 在末尾添加如下代码(其中,r表示读,w表示写):
      1. admin = suzhan,yonghuming
      2. [/]
      3. @admin = rw
    4. 按 Esc 键退出编辑模式,并输入 :wq 保存并退出。
     
     
    按以下步骤修改svnserve.conf文件。
    1. 运行命令 vi svnserve.conf
    2. 按 i 键进入编辑模式。
    3. 打开以下几个注释(注意每行不能以空格开始,等号两端要有一个空格):
      1. anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示
      2. auth-access = write #授权用户可写
      3. password-db = passwd #使用哪个文件作为账号文件
      4. authz-db = authz #使用哪个文件作为权限文件
      5. realm = /home/svn/testHTML #认证空间名,版本库所在目录
    4. 按 Esc 键退出编辑模式,并输入 :wq 保存并退出。
    运行以下命令启动SVN版本库。(启动最外层的版本库)
    1. svnserve -d -r /home/svn
    运行命令 ps -ef |grep svn 查看SVN服务是否开启。
    如果返回结果如下图所示,表示SVN服务已经开启。
    注意
    运行以下命令停止SVN命令。
    killall svnserve
    (以后每添加一个SVN项目,重复第三步、iii以下的步骤/如: svnadmin create /home/svn/newProjectName
     
    四、测试服务器:
    //我们在web目录测试(/home/www)
    cd /home/www
    svn co svn://localhost/testHTML
    如果提示:Checked out revision 1. 
    表示checkout成功
    我们添加新文件来测试是否提交成功
    (下面的命令可能会随着svn的版本不同而有不同,不能正常运行时,查看帮助文档,svn -help,
    使用“svn help <subcommand>” 显示子命令的帮助信息。
    使用“svn --version”查看程序的版本号和版本库访问模块,或者
    使用“svn --version --quiet”只查看程序的版本号。
     
    cd /home/www/testHTML
    touch index.php
    svn add index.php //成功的话会显示 A index.php
    svn commit -m "测试提交文件"
     
     
    五、本地SVN拉取文件
     
     
    六、 实现svn更新自动同步到web目录:这一步要特别注意,网上很多教程并没有说明,都是抄来抄去,导致错误很多。
    进入/home/svn/testHTML/hooks下,建立post-commit文件:
    具体看以下中文注释 ,在用vi编辑时,要去掉这些中文注释
     
    #!/bin/bash
    REPOS="$1"
    REV="$2"
    export LANG=en_US.UTF-8  //这里设置字符格式
    SVN_PATH=/usr/bin/svn            //这里是SVN安装的目录,一般都是这个,如果没改过,查看svn安装目录命令:whereis svn
    WEB_PATH=/home/www/testSVN1    //这个是项目运行目录,也就是你的网站的目录
    SVN_USER=admin                //这里是网上教程基本都报错的原因,这个用户名可以随意,但一定要在这个项目版本库的authz、和passwd中添加进去,也就是上面的第三步中的设置账号密码权限。不然会报各种错。
    SVN_PASS=admin
    LOG_PATH=/tmp/svn.log        //这个是日志目录
    echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH  //写入日志的内容
    echo `whoami`,$REPOS,$REV >> $LOG_PATH
    $SVN_PATH update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH
     
    给post-commit 执行权限:
    chmod 777 post-commit
     
    七、然后在PC 端,就可以用SVN客户端使用了
     
    svn地址跟前面设置的目录一致。由于后面用不同电脑写的教程 ,所以文件名由上面的testHTML变成了testSVN1,但仅仅只是改了名字,其它一样
     
     
     
     
     
     
     
  • 相关阅读:
    HTTP报文详解
    常用的HTTP协议
    URL详解
    log4net工作原理(2)
    《Linux内核设计与实现》读书笔记(十七)- 设备与模块
    《Linux内核设计与实现》读书笔记(十六)- 页高速缓存和页回写
    《Linux内核设计与实现》读书笔记(十五)- 进程地址空间(kernel 2.6.32.60)
    《Linux内核设计与实现》读书笔记(十四)- 块I/O层
    随手记代码
    记录一下WPF中自寄宿asp.net服务添加urlacl的问题
  • 原文地址:https://www.cnblogs.com/zst062102/p/10936245.html
Copyright © 2020-2023  润新知