六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 778|回复: 0

PHP调用Shell脚本需要注意的问题

[复制链接]
 楼主| 发表于 2014-11-17 11:58:08 | 显示全部楼层 |阅读模式
PHP调用Shell脚本需要注意的问题
php调用shell脚本的it.agoit.com-svnup.php文件内容:
  1. <?
  2. set_time_limit(0);
  3. //$output = array();
  4. $ret = 0;
  5. exec("/usr/bin/sudo /data0/shell/svnvp.sh", $output, $ret);
  6. echo "Result:{$ret}";
  7. print_r($output);
  8. ?>
复制代码
/data0/shell/svnvp.sh是更新的脚本,主要内容是svn up。
还需要修改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. 赋予www用户执行svn权限
如,增加行:www  ALL=(ALL) NOPASSWD: /data0/shell/svnvp.sh
注:NOPASSWD可以使在命令执行时不需要交互输入www 用户的密码
www用户为nginx或apache的运行用户
4.重启nginx或apache,让用户重新获得权限。


PHP调用Shell脚本需要注意的问题
该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表