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


Cron job fails when the php file calls a function from another php. file

我设置了一个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的新手。

有人能透露一些信息吗?提前谢谢。

当执行这样的代码时,您的代码在/usr/bin上运行,因此如果您在include ../scripts/functions.php上,则您的代码会在/usr/scripts/functions.php 上查找文件

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

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

这应该对你有用。

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

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

类似于:

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

希望这能帮助。。。