我已设置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
的新手。
任何人都能解开一些光明吗?提前谢谢。
答案 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
希望这会有所帮助......