2017-02-17 86 views
0

使用PHP需要在後臺運行PHP。我使用shell_exec來做到這一點,並傳遞正確運行所需的參數。腳本中的PHP shell_exec似乎不起作用

例子:

shell_exec('php /home/nobounces/crons/process3.php ' . $_SESSION['user_id'] . ' ' . $job['job_id'] . ' >/dev/null 2>&1'); 

然而,根據用戶「nobounces」一個PHP腳本運行時,它不會運行在所有。

我測試了完全相同的呼叫通過SSH作爲根,它工作順利。

我在通話中丟失了什麼嗎?

">/dev/null 2>&1"是爲了避免等待響應,因爲腳本可能需要幾小時才能完成。

+2

最有可能的是,該帳戶在其「PATH」環境變量中沒有php可執行文件。嘗試使用php解釋器的絕對路徑,可能是'/ usr/bin/php'。 – arkascha

+0

如果你只是在控制檯輸入php,會發生什麼?它會起作用嗎?如果不是,請設置路徑第一個 – sumit

+0

嘗試在cPanel安裝中找到PHP的路徑,已經嘗試使用/ usr/bin/php,但它似乎沒有導致它仍然無法正常工作。 –

回答

0

這樣的cPanel服務器上運行,該解決方案是使用:

shell_exec('/usr/local/cpanel/3rdparty/bin/php /home/nobounces/crons/process3.php ' . $_SESSION['user_id'] . ' ' . $job['job_id'] . ' >/dev/null 2>&1 &'); 

您也可以使用路徑中使用PHP,CGI:

/usr/local/cpanel/3rdparty/bin/php-cgi 

感謝@arkascha的建議。