用cron运行php脚本不起作用

时间:2016-01-22 08:03:53

标签: php cron crontab phpmailer

我有一个php-email(phpmailer 5.2.14)脚本,当我在bash中运行它时工作正常:

pi@schnickschnack: php /var/www/html/email.php

当我用cron(sudo crontab -e)运行这个脚本时:

*/1 * * * * root php /var/www/html/email.php

系统日志说......

Jan 22 08:53:01 Schnickschnack CRON[4482]: (root) CMD (root php /var/www/html/email.php)

...但我收不到邮件。 我有另一个PHP脚本,可以正常使用crontab。这个脚本将phpmodbus中的值插入到mysql-db中...... 有没有人提示为什么邮件脚本不适用于cron?

2 个答案:

答案 0 :(得分:2)

* * * * * php /var/www/html/email.php

否则,cron尝试执行命令“root”,这不是命令。

答案 1 :(得分:0)

当您通过cron运行时,所有常规的$ PATH和ENV都不可用。 因此CRON不知道在哪里可以找到“ php”。

取决于您的安装-确定PHP bin的位置:

which php

在您的cronjob中使用结果路径。例如:

*/1 * * * * /bin/php /var/www/html/email.php

**除非打算这样做,否则不要将email.php脚本留在任何可以轻易访问Web服务器的人“无意间”运行的地方。 email.php肯定在脚本小子的热门列表中。