2012-08-01 149 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