php如何控制svn更新代码

1、php执行svn的更新命令很简单 exec();

2、难点时如何用php进程用户控制系统进程

php是以www身份做系统中运行,无对应权限;这时需要用sudo以及相关的/etc/sudoers来帮忙。


修改sudo配置文件,直接键入visudo命令编辑配置文件:

1. 注释Defaults requiretty
Defaults requiretty修改为 #Defaults requiretty, 表示不需要控制终端。
否则会出现sudo: sorry, you must have a tty to run sudo

2. 增加行 Defaults visiblepw
否则会出现 sudo: no tty present and no askpass program specified

我发现sudo-1.6.9p17-5.el5是不支持这个参数的,sudo-1.7.2p1-10.el5支持。


3.在配置文件靠近尾部的地方有一行root    ALL=(ALL)       ALL,紧接着这行加入

www      ALL=(ALL)     NOPASSWD:/usr/bin/svn *

注:NOPASSWD可以使在命令执行时不需要交互输入www 用户的密码

 

 

具体示例代码如下

exec('sudo /usr/bin/svn up /www/code --username svnuser --password ooxx 2>&1',$output, $return_val);

echo implode("<br />\n\r", $output),"<br />\n\r";

 

update的时候会出现Store password unencrypted,解决办法


vim ~/.subversion/servers

或者根据用户

vim /home/zhangy/.subversion/servers

找到以下内容,注释去掉并改成yes就行了

# store-plaintext-passwords = no

同样内容的行在servers文件中可能有多个,要找在[global]标签之后的行做修改


这样就实现来通过web来更新svn了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值