• 利用SVN搭建测试服务器


    在正规的团队开发流程中,测试服务器测试是必不可少的一个环节,如何简单快捷的部署测试服务器将是本文的重点。本文的实际环境是CentOS + PHP + MySQL + SVN,将通过两种不同的途径来实现部署测试服务器的最终目的。

    第一种,post-commit
    post-commit本身是SVN系列钩子中的一个,是为了更方便对SVN使用中的常见操作进行处理,
    建立测试服务器的步骤如下
    在hooks目录,创建post-commit文件, 并将其内容定义为类似如下

    #!/bin/sh
    export LANG=en_US.UTF-8
    svn checkout --username kimi --password password svn://10.0.0.8/projects/ /wwwroot/projects.ismole.net
    chown www:www /wwwroot/projects.ismole.net -Rf


    说明:
    1. #!/bin/sh 说明是执行shell命令

    2. export LANG=en_US.UTF-8是为了解决svn post commit 中文乱码,设置本地化编码。不过SVN默认是UTF-8编码。如果字符集符合并且不设置将会出现错误,而执行不成功,错误标识为svn: Can't convert string from native encoding to 'UTF-8'

    3. svn checkout --username kimi --password password svn://10.0.0.8/projects/ /wwwroot/projects.ismole.net 执行SVN检出操作

    4. chown www:www /wwwroot/projects.ismole.net -Rf 更改文件夹属主为适合Web Server的。

    里面原有的代码全部注释掉.这里可以执行shell命令,每次commit完成后都会调用此文件。

    第二种,PHP检出SVN

    < ?php  
    header("Cache-Control:no-cache,must-revalidate");  
    $handle = popen('svn checkout --username kimi --password password svn://10.0.0.8/projects/ /wwwroot/projects.ismole.net', 'r');  
    $read = stream_get_contents($handle);
    echo "<pre>";  
    printf($read);  
    echo "< /pre>"  
    pclose($handle);  
    ?>


    其实这种方式只是利用PHP来执行linux命令,不过多描述。参考《PHP监控linux服务器负载》:http://www.ccvita.com/390.html

    综合以上两种方式,其目的都是通过将SVN检出,并放置在相应的web目录下来实现的。这两种相互比较而言,post-commit更为简单快捷,无需更多的操作,但是对权限控制力度很小,只要有SVN的提交权限就有部署测试服务器的权限;PHP方式相比麻烦一些,但是对用户权限的控制可以专门定制相应的程序来实现,几乎可以实现任何角色对权限的控制。

    在实际的使用过程中,我们目前对应用的APP调试以及合作性质的研发采用第一种方式;如果对SVN需要比较多权限控制的话,推荐采用第二种,可以囊括测试,部署,上线等各个环节。在和新浪的一个合作中,采用这种异地开发方式。

  • 相关阅读:
    抓取网页数据C#文件
    ListView嵌套GridView使用详解及注意事项
    listView里面添加gridview
    动态加载图片的Adapter
    如何使用Photoshop(PS)将图片的底色变为透明
    无需序列号安装Photoshop CS6
    Objective-C中.h文件、.m文件中@interface、@synthesize及其它
    Android studio sha1
    Tool bar
    onActivityResult 通过case对不同情况进行处理
  • 原文地址:https://www.cnblogs.com/qq78292959/p/2623060.html
Copyright © 2020-2023  润新知