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

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

WBOY
WBOYOriginal
2016-06-13 12:37:051116Durchsuche

为什么用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
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn