美文网首页ubuntuUbuntu新手帮助WEB-PHP
Ubuntu系统开发环境搭建三:svn的安装与代码自动同步设置

Ubuntu系统开发环境搭建三:svn的安装与代码自动同步设置

作者: kevinLY | 来源:发表于2016-04-28 11:10 被阅读404次

    看到svn是不是有点狠low的感觉
    写这篇的目的1:是记录下安装和配置的方法;2:是记录下自己在配置过程中遇到的问题和如何解决的,防止初学者走弯路;

    一、前提

    首先一最好有一台自己服务器,我的服务器配置在Ubuntu系统开发环境搭建一:MySQL的安装提到;
    二、如果你想把你通过svn提交的代码同步到本机的nginx服务器的根目录,你需要看下Ubuntu系统开发环境搭建二:php+nginx的安装,安装好php开发环境

    接着来看下svn的安装:

    二、svn的安装

    svn的安装很简单使用apt命令

    apt-get install subversion
    

    三、svn仓库的创建与配置

    1、创建一个名称为svn的文件夹,文件夹里面用来创建数据仓库
    备注:这里我在home目录下创建一个svn文件夹
    切换到home文件夹,执行以下命令:

    mkdir svn
    

    2、创建一个数据仓库(一个目录下可以创建多个仓库)
    备注:这里我创建一个名称为huishouzhi的数据仓库

    svnadmin create huishouzhi
    

    3、启动和停止svn服务

    启动svn服务

    svnserve -d -r /home/svn
    

    停止svn服务

    killall svnserve
    

    查看svn服务的状态

    netstat -an |grep 3690
    
    A1F0D8C2-F9DB-4FBF-BD2D-8E209D52D172.png

    说明svn处于启动状态
    4、设置svn的访问权限
    目录切换到你创建的数据仓库的目录;
    这里我切换到huishouzhi目录:


    数据仓库目录.png

    先来看下文件夹
    conf:就是你要配置权限的地方
    db:是存储数据的地方
    hooks:钩子,这里面的代码在svn提交代码的时候回被触发,在接下来配置代码同步的时候会用到
    locks:暂时不用管

    目录切换到conf:

    1、打开svnserve.conf 文件,取消anon-access = none(修改read为none)
    auth-access = write password-db = passwd authz-db = authz 前面的注释,注意:前面不要留空格

    9ECD5909-CB3B-4B05-982B-B02F99FE62C9.png
    2、打开passwd文件:这个文件主要是存储svn用户信息,注意这里账号密码都是明文存储的。
    直接把我的密码黏上,哈,是不是特有奉献精神
    passwd文件内容.png
    3、打开authz文件:这里可以给你在passwd文件里设置的用户添加权限
    还是直接上图吧
    authz权限.png

    到目前为止你就可以远程连接svn,提交代码都是木有问题的


    svn连接成功.png

    四、svn代码自动同步带nginx根目录设置

    背景:有时候我们在进行php开发的时候需要在本地提交svn代码后,能自动把提交的代码同步到nginx的根目录下(我这里的根目录是var/www),这样在浏览器中就能直接预览了。
    原理:把服务器作为一个svn客户端,首先需要把svn仓库的代码导出到nginx的根目录下;在以后每次提交代码的时候,触发hooks下的脚本,自动把提交的代码更新到nginx根目录就可以了。

    1、首先在nginx的根目录下执行以下命令:

    svn checkout svn://127.0.0.1/huishouzhi
    

    2、目录切换到hooks文件夹下
    执行命令:创建一个post-commit文件

    vi post-commit
    

    黏贴以下代码

    #!/bin/sh
    export LANG=zh_CN.UTF-8   
    REPOS="$1"
    REV="$2"
    LOG_PATH=/home/svn/huishouzhi/conf/svn.log
    echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
    echo `whoami`,$REPOS,$REV >> $LOG_PATH
    svn update /var/www/huishouzhi --username admin --password admin.huishouzhi --no-auth-cache  >> $LOG_PATH
    exit 0
    

    备注:其中admin admin.huishouzhi 可以是你之前设置的任何一个svn的账户

    END ——有什么问题随时交流

    相关文章

      网友评论

      本文标题:Ubuntu系统开发环境搭建三:svn的安装与代码自动同步设置

      本文链接:https://www.haomeiwen.com/subject/rbycrttx.html