評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 1,平均評等: 5]
最近常需要用php去呼叫shell script, 在command line 執行是沒問題的,但用shell_exec()去呼叫一直失敗,直接用var_dump回的也只是null,後來查一下才知回null是正常的因為我沒有拋出shell script的錯誤訊息。
舉例:我要呼叫某隻 abc.sh
echo shell_exec(‘sudo abc.sh’);
顯示結果 NULL
echo shell_exec(‘sudo abc.sh 2>&1’);
顯示結果 sudo no tty present and no askpass program specified
喔喔!執行程式需要輸入密碼
解法透過免輸入密碼來解決:
指令:sudo visudo
加入以下內容
apache ALL=(ALL) NOPASSWD: /bin/sh, /home/jeff/w.sh
www-data ALL=(ALL) NOPASSWD: /bin/sh, /home/jeff/w.sh
註:每個參數中間 以一個空白 隔開即可
評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 1,平均評等: 5]