首页 PHP 正文
244

web方式调用svn更新服务器代码

  • yiqingpeng
  • 2015-09-12
  • 0
  •  
首先保证apache具有执行系统函数的权限(操作方法见前本博客另一篇文章)

用php调用系统方法:
$$projectRoot = '/mnt/www/myproj';
$cmd = "svn update $projectRoot --username $svnUser --password $svnPwd --no-auth-cache --non-interactive";
$list = array();
$result = exec($cmd,$list);
var_dump($list);

试了半天,发现没有任何输出。于是打印出$result出现提示:svn: Can't open file '/mnt/www/dbseln/.svn/lock': Permission denied,网上找了一下,原因是检出项目的时候用的是root账号,而用web更新命令用的是www-data用户,此用户对.svn目录没有写权限造成的。既然问题是这样,那么只要将项目下所有.svn目录赋予www-data用户写权限就是了,由于我这里www-data用户是属于root组的,所以把所有.svn目录的组权限加上写权限就好:
find /mnt/www/myproj -name .svn -exec chmod g+w {} -R \;
chmod g+rw myproj
如果还是不行,暴力点就是对所有目录都加上写权限:
find /mnt/www/ -type d  -exec chmod g+w {} -R \; 

这样就可以执行svn更新命令了。

正在加载评论...