首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

为什么用exec执行一个命令时,在脚本内执行不成功,放到服务器命令行就可以了,小弟我在/etc/sudoers也做了配置

2013-09-28 
为什么用exec执行一个命令时,在脚本内执行不成功,放到服务器命令行就可以了,我在/etc/sudoers也做了配置我

为什么用exec执行一个命令时,在脚本内执行不成功,放到服务器命令行就可以了,我在/etc/sudoers也做了配置
   我首先在/etc/sudoers做了如下配置
为什么用exec执行一个命令时,在脚本内执行不成功,放到服务器命令行就可以了,小弟我在/etc/sudoers也做了配置
   接着重启了下apache服务器
   在tp框架内写到


exec('/usr/bin/unoconv --server localhost --port 8100 -o /usr/local/webserver/www/server/Exam/Public/Uploads/Resource/transform/document/201309/52419a788a553.pdf -f pdf /usr/local/webserver/www/server/Exam/Public/Uploads/Resource/untransform/document/201309/52419a788a553.doc');

    运行了下,没有效果,转码不成功,把代码直接拿出来就可以执行。

     同时,我又把转码的部分写到一个shell脚本里

#!/bin/sh


turnCode() {
local pdf=`echo $1 | cut -d: -f1`;
local file=`echo $1 | cut -d: -f2`;
echo $pdf;
echo $file;
  `/usr/bin/unoconv --server localhost --port 8100 -o $pdf -f pdf $file`

}



action="$1"
setting="$2"
case $action in

    turnCode)
        turnCode "$setting"
    ;;

    *)
    ;;

esac


通过exec调用

 exec("sudo ./bash turnCode $save_path1:$file_path1", $out, $status);

结果仍旧是无法转码,哪位过来人烦请指点下,不甚感激!!! shell
[解决办法]
命令行时,使用的是你的账号的权限。而脚本则可以不同,完全由该脚本的拥有者或创建者的账号权限控制。

热点排行