2012-08-01 180 views
1

我使用exec來運行一個後臺腳本這樣的:exec命令不工作

$command = "/usr/local/bin/php public_html/r/index.php tools $action process $params > /dev/null &"; 
exec($command); 

的事情是:它是工作。

提示:

  • 當我從終端(通過SSH)執行同樣的命令,它的正常工作。
  • exec命令已啓用(我可以執行任何命令而沒有問題)。

任何想法?

+0

你的意思是不工作?你會得到什麼錯誤? – nickb 2012-08-01 15:17:25

+0

它的輸出是什麼?它的回報價值是多少? (添加[第二和第三個參數](http://us2.php.net/manual/en/function.exec.php)以查明。) – Wiseguy 2012-08-01 15:18:16

+0

@nickb我沒有收到任何錯誤; php腳本看起來好像不能運行。 – 2012-08-01 15:18:18

回答

5

後臺作業通常與您的shell有不同的'當前'目錄 - 通常它是作業正在運行的帳戶的主目錄。除非您的public_html位於/home/whoever,否則您並未實際運行腳本。嘗試絕對路徑:

$command = "/usr/local/bin/php /path/to/public_html/r/index.php etc..." 
           ^^^^^^^^^ 

改爲。

+0

Geeeeeez!有效!謝謝!有趣的是,我的'public_html' **在**'/ home/whoever'下面**。設定絕對路徑雖然有竅門!我真的不能非常感謝你幫助我,朋友! :-) – 2012-08-01 15:24:31