我想創建一個php腳本來執行shell命令並返回其輸出。服務器需要私鑰。當我第一次決定測試這個時,我創建了這個:如何從php腳本執行shell命令
<?php
$command = "ls";
$output = shell_exec($command);
echo "<pre>$output</pre>";
?>
工作得很好。但是,當我改變$command
到命令我真的想跑:
$command = "/etc/init.d/mycontrollerd status /etc/mycontrollerconfig";
它給了我這樣的輸出:
You need root privileges to run this script
我的猜測是,我需要使用sudo
。當然,這需要將pem文件放在服務器上的某個地方。假設我這樣做,$command
究竟應該是什麼?我應該使用shell_exec()
,exec()
,system()
還是別的?
雖然它*還*重要的是用戶帳戶必須被授權,這並不意味着沒有一個PHP函數使用的最佳選擇。哪個最好? –
@Kenneth Vogt'exec',因爲它不會不必要地涉及到shell並返回結果,或者'passthru',它直接輸出結果,但是需要對原始代碼進行一些修改。 – phihag