為什麼用exec執行一個命令時,在指令碼內執行不成功,放到伺服器命令列就可以了,小弟我在/etc/sudoers也做了配置

來源:互聯網
上載者:User
為什麼用exec執行一個命令時,在指令碼內執行不成功,放到伺服器命令列就可以了,我在/etc/sudoers也做了配置
我首先在/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

分享到:


------解決方案--------------------
命令列時,使用的是你的帳號的許可權。而指令碼則可以不同,完全由該指令碼的擁有者或建立者的帳號許可權控制。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.