Cronjob 和 PHPmailer 没有按预期工作
Cronjob and PHPmailer not working as expected
我有两个 cron 作业
0 8 * * * /usr/bin/php /var/www/Apps/Appsname/Extract.php
*/2 * * * * /usr/bin/php /var/www/Apps/Appsname/weeklybusinessemail.php
提取的 cronjob 工作得很好。
weeklybusinessemail.php没有。
它有一个带有附件的 phpmailer 脚本。
当我 运行 weeklybusinessemail.php 通过 url 它工作并发送电子邮件时,但通过 crontab 它没有!
所有名称都匹配。
任何帮助将不胜感激
> /dev/null
重定向标准输出。
2>&1
将标准错误 (2) 重定向到标准输出 (1)
尝试:
*/2 * * * * php /var/www/Apps/Appsname/weeklybusinessemail.php > /dev/null 2>&1
如果应用程序是 mvc:
*/2 * * * * php /var/www/Apps/Appsname/index.php controller_folder/controller_class_name > /dev/null 2>&1
如果没有更多调试信息很难说,但是当 运行ning cron 任务是工作目录位置时的一个常见问题。如果您希望附件与脚本位于文件夹中并使用 filename.txt
等相对路径引用它们,则该路径不是相对于脚本的,而是 cron 进程的工作目录,它可以在任何地方.当您从 Web 运行 它时它会起作用,因为您的 Web 服务器在 运行 脚本之前将目录更改为虚拟主机的根目录,因此相对路径将起作用。
尝试为您的文件附件使用绝对路径(例如使用 __DIR__.'/filename.txt'
),或者在 运行 执行您的 cron 任务之前更改目录:
*/2 * * * * cd /var/www/Apps/Appsname && /usr/bin/php /var/www/Apps/Appsname/weeklybusinessemail.php
我有两个 cron 作业
0 8 * * * /usr/bin/php /var/www/Apps/Appsname/Extract.php
*/2 * * * * /usr/bin/php /var/www/Apps/Appsname/weeklybusinessemail.php
提取的 cronjob 工作得很好。
weeklybusinessemail.php没有。
它有一个带有附件的 phpmailer 脚本。
当我 运行 weeklybusinessemail.php 通过 url 它工作并发送电子邮件时,但通过 crontab 它没有! 所有名称都匹配。
任何帮助将不胜感激
> /dev/null
重定向标准输出。
2>&1
将标准错误 (2) 重定向到标准输出 (1)
尝试:
*/2 * * * * php /var/www/Apps/Appsname/weeklybusinessemail.php > /dev/null 2>&1
如果应用程序是 mvc:
*/2 * * * * php /var/www/Apps/Appsname/index.php controller_folder/controller_class_name > /dev/null 2>&1
如果没有更多调试信息很难说,但是当 运行ning cron 任务是工作目录位置时的一个常见问题。如果您希望附件与脚本位于文件夹中并使用 filename.txt
等相对路径引用它们,则该路径不是相对于脚本的,而是 cron 进程的工作目录,它可以在任何地方.当您从 Web 运行 它时它会起作用,因为您的 Web 服务器在 运行 脚本之前将目录更改为虚拟主机的根目录,因此相对路径将起作用。
尝试为您的文件附件使用绝对路径(例如使用 __DIR__.'/filename.txt'
),或者在 运行 执行您的 cron 任务之前更改目录:
*/2 * * * * cd /var/www/Apps/Appsname && /usr/bin/php /var/www/Apps/Appsname/weeklybusinessemail.php