当php文件从另一个php调用一个函数时,Cron作业失败。文件

时间:2012-01-09 21:44:32

标签: php cron

我已设置cron作业来运行testemail.php。每分钟工作都很好。 (Ubuntu localhost,php5)

* * * * * /usr/bin/php5 -q /var/www/cocoraco/portfolio/html/testemail.php > /dev/null 2>&1 

我有第二个文件findandemail.php,它运行一些数据库任务并发送电子邮件。电子邮件功能定义在(我确实包括如下)"../scripts/functions.php"。它不起作用,而testemail.php仍然有效。

在这种情况下,

Cron看起来像

* * * * * /usr/bin/php5 -q /var/www/cocoraco/portfolio/html/testemail.php > /dev/null 2>&1
* * * * * /usr/bin/php5 -q /var/www/cocoraco/portfolio/find/findandemail.php > /dev/null 2>&1

作为测试,如果我将代码从testemail.php复制到findandemail.php,该部分可以正常发送虚拟电子邮件。我是cron的新手。

任何人都能解开一些光明吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

执行这样的代码时,您的代码会在/usr/bin运行,因此如果include ../scripts/functions.php您的代码在/usr/scripts/functions.php

查找文件

我喜欢使用__FILE__魔法常量来包含非常防弹的文件:

include(dirname(__FILE__).'/../scripts/functions.php');

这应该适合你。

答案 1 :(得分:0)

我从不使用php作为cron任务的可执行文件,

我建议使用wget并将输出记录到文件中(取决于你的脚本)

类似的东西:

# m h  dom mon dow   command
* * *  *   *    wget -bqc http://domain/testemail.php

希望这会有所帮助......