Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用cron运行php脚本不起作用_Php_Cron_Crontab_Phpmailer - Fatal编程技术网

使用cron运行php脚本不起作用

使用cron运行php脚本不起作用,php,cron,crontab,phpmailer,Php,Cron,Crontab,Phpmailer,我有一个php电子邮件(phpmailer 5.2.14)脚本,在bash中运行时,该脚本运行良好: pi@schnickschnack: php /var/www/html/email.php 当我使用cron(sudo crontab-e)运行此脚本时: syslog说 Jan 22 08:53:01 Schnickschnack CRON[4482]: (root) CMD (root php /var/www/html/email.php) …但我没有收到邮件。 我有另一个php脚本

我有一个php电子邮件(phpmailer 5.2.14)脚本,在bash中运行时,该脚本运行良好:

pi@schnickschnack: php /var/www/html/email.php
当我使用cron(sudo crontab-e)运行此脚本时:

syslog说

Jan 22 08:53:01 Schnickschnack CRON[4482]: (root) CMD (root php /var/www/html/email.php)
…但我没有收到邮件。 我有另一个php脚本,它可以很好地与crontab配合使用。此脚本将phpmodbus中的值插入mysql数据库。。。 有人知道为什么邮件脚本不能与cron一起使用吗?

试试看

* * * * * php /var/www/html/email.php
否则,cron将尝试执行“root”命令,该命令不是命令。

try

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

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

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

根据您的安装,确定PHP容器的位置:

which php
在cronjob中使用生成的路径。例如:

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

**除非有意,否则不要将email.php脚本留在任何简单点击Web服务器的人都可能“无意”运行的地方。当然,email.php也在ScriptKiddies的热门列表中。

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

根据您的安装,确定PHP容器的位置:

which php
在cronjob中使用生成的路径。例如:

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

**除非有意,否则不要将email.php脚本留在任何简单点击Web服务器的人都可能“无意”运行的地方。email.php当然在脚本kiddies的热门列表中。

我根据您的建议更改了这一点,但邮件脚本不起作用尝试使用php文件的完整路径(在大多数系统上,您可以通过在shell中执行“which php”找到它)按Franz说的做(通常是
/usr/bin/php
),或者在你的
/etc/crontab
中设置一个
路径
env var。我根据你的建议更改了它,但是邮件脚本不起作用。尝试使用php文件的完整路径(在大多数系统上,你可以通过在shell中执行“which php”来找到它)按照Franz说的做(通常是
/usr/bin/php
),或者在
/etc/crontab
中设置
路径
环境变量。