簡體   English   中英

shell_exec(); 在PHP中無法正常工作

[英]shell_exec(); not working properly in PHP

我正在嘗試通過shell_exec()執行命令; 但它什么也沒做。 我知道了shell_exec(); 已啟用,因為它們可以完美地工作:

echo shell_exec('which php');
echo shell_exec('ls');

他們確實輸出正確。

問題是當我想執行以下操作時:

shell_exec("php file.php var1 var2 > /dev/null &");

它什么也沒做,但是當我通過計算機上的終端運行它時,它確實可以工作。 我也嘗試過這樣的完整路徑:

shell_exec("/usr/bin/php /full/path/file.php var1 var2 > /dev/null &");

而且它不起作用,但是再次...如果我通過終端計算機運行它,它將起作用。

php.ini安全模式已關閉,並且上面沒有禁用的功能,所以我不知道會發生什么。 是的,我可以使用SSH並獲得專用IP。

嘗試查看函數的返回代碼$return_var (函數system exec最后一個參數)。 如果成功,則應為0 如果是127可能是服務器上不允許使用命令行,或者您沒有足夠的特權來運行來自PHP腳本的命令(這取決於執行腳本的用戶/組)。 否則,函數只會返回空的輸出數組,就像沒有發生好壞一樣。

不久前,我遇到了類似情況, ls工作正常,而wget總是失敗。

您可能會收到一個權限被拒絕的錯誤,特別是因為您試圖將輸出重定向到/dev/null 可能想考慮一項cron作業,但是我不確定為什么要重定向輸出並在后台運行它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM