zoukankan      html  css  js  c++  java
  • php执行svn命令更新代码到服务器

    公司内网更新代码到内网测试服务器,使用的方法是在测试服务器执行svn命令同步开发机器代码,虽然做了定时,但是每次还是要手动更新,觉得太麻烦了,

    于是想到用php执行svn命令,这样我们每次用浏览器执行下php脚本就行了。代码很简单。

    echo "<pre>";system('/usr/local/bin/svn update --force --username "svn用户名" --password "svn密码" /data/web/html');die;
    

    但是代码执行不成功,php.ini开启了system函数权限,同样的代码用php命令行可以执行,

    php -r "system('/usr/local/bin/svn update --force --username "svn用户名" --password "svn密码" /data/web/html/app.139game.com');"

    简介下PHP目前比较常见的五大运行模式:

    1)CGI(通用网关接口 / Common Gateway Interface)

    2)FastCGI(常驻型CGI / Long-Live CGI)

    3)CLI(命令行运行 / Command Line Interface)

    4)Web模块模式(Apache等Web服务器运行的模式)

    5)ISAPI(Internet Server Application Program Interface)

    备注:在PHP5.3以后,PHP不再有ISAPI模式,安装后也不再有php5isapi.dll这个文件。要在IIS6上使用高版本PHP,必须安装FastCGI 扩展,然后使IIS6支持FastCGI。

    服务器用的是apache,用户是www,所以用web模块方式运行php用户肯定是www,那么执行svn命令的肯定也是www,所以www需要有更新代码目录的写权限,修改目录权限后,

    有下面的警告提示:

    You can avoid future appearances of this warning by setting the value

    of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
    '/home/www/.subversion/servers'.
    -----------------------------------------------------------------------
    Store password unencrypted (yes/no)? yes

    有2个解决办法

    1./usr/local/bin/svn update --force --no-auth-cache --username "svn用户名" --password "svn密码" /data/web/html/  加上--no-auth-cache参数 不缓存验证信息

    2.给www用户建立/home/www目录并给写权限,然后出现上面那个提示的时候yes即可

  • 相关阅读:
    归并排序
    边割集
    NBUT 1225 NEW RDSP MODE I 2010辽宁省赛
    NBUT 1218 You are my brother 2010辽宁省赛
    NBUT 1220 SPY 2010辽宁省赛
    NBUT 1219 Time 2010辽宁省赛
    NBUT 1223 Friends number 2010辽宁省赛
    NBUT 1217 Dinner 2010辽宁省赛
    第七届蓝桥杯个人赛省赛--C语言B组
    2017广东工业大学程序设计竞赛决赛 tmk买礼物
  • 原文地址:https://www.cnblogs.com/gaoqin31/p/5056237.html
Copyright © 2011-2022 走看看