2013-06-01 105 views
0

我有以下代碼:PHP Shell_Exec不能正常工作?

$output = shell_exec("./Program $var1 $var2"); 
echo "<pre>$output</pre>"; 

它不工作,但

$output = shell_exec("ls"); 
echo "<pre>$output</pre>"; 

確實工作。

$output = shell_exec("top"); 
echo "<pre>$output</pre>"; 

也不起作用。爲什麼?

回答

1

這肯定是一個權限問題。確保您正嘗試使用腳本中的./命令執行的文件具有+ x perms。以下是關於提供文件可執行權限的前一個線索:Creating executable files in Linux

如果該文件已具有+ x權限,則可能是運行命令的腳本存在權限問題。無論哪種方式,如果您可以運行ls而不是./和top,則必須具有權限。

編輯:我給的鏈接,我意識到有很多關於Perl和bash腳本的信息。最重要的部分就是命令使文件可執行

chmod +x ProgramName 
+0

沒有,但沒有解決它:/感謝您的幫助,雖然 – Orca

+0

任何其他建議 – Orca

+0

嗯。當你說它不起作用時,你可以在你的問題中包括它給出的錯誤嗎?或者它只是打印一個空字符串? –

0

取決於$ VAR1和$ VAR2你可能需要做它周圍的escapeshellarg通話內容。

$output = shell_exec("./Program ".escapeshellarg($var1)." ".escapeshellarg($var2)); 

即使它不起作用它可能是一個好主意。同時確認你的路徑是正確的。也許與file_exits('./Program');檢查