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

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

WBOY
WBOY원래의
2016-06-13 12:37:051118검색

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

   接着重启了下apache服务器
   在tp框架内写到

<br />
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');<br />

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

     同时,我又把转码的部分写到一个shell脚本里
<br />
#!/bin/sh<br />
<br />
<br />
turnCode() {<br />
local pdf=`echo $1 | cut -d: -f1`;<br />
local file=`echo $1 | cut -d: -f2`;<br />
echo $pdf;<br />
echo $file;<br />
  `/usr/bin/unoconv --server localhost --port 8100 -o $pdf -f pdf $file`<br />
<br />
}<br />
<br />
<br />
<br />
action="$1"<br />
setting="$2"<br />
case $action in<br />
<br />
    turnCode)<br />
        turnCode "$setting"<br />
    ;;<br />
<br />
    *)<br />
    ;;<br />
<br />
esac<br />
<br />

通过exec调用
<br />
 exec("sudo ./bash turnCode $save_path1:$file_path1", $out, $status);<br />

结果仍旧是无法转码,哪位过来人烦请指点下,不甚感激!!!

shell
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.