我正在尝试设置一个cronjob,它会在运行时向我发送电子邮件。
当我通过PuTTY使用ssh命令执行文件时,它可以工作,当我将其设置为URL时也可以工作,但在使用绝对路径设置时不起作用。
以下是我迄今为止所做的一切: 工作:
* * * * * http://example.com/cron/cron.php
不起作用:
* * * * * php /var/www/clients/client2/web6/web/global/cron/cron.php
* * * * * /var/www/clients/client2/web6/web/global/cron/cron.php
* * * * * /usr/bin/php /var/www/clients/client2/web6/web/global/cron/cron.php
我在''工作'中列出的所有3个作为通过PuTTY
的命令执行时都有效文件权限全部被整理出来,对于cron文件及其所在的目录是777。
我正在使用IspConfig3和Debian以及Apache2,如果这很重要
编辑:这是cron.php中的代码:
#!/usr/bin/php
<?php
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Cronjob <cronjob@example.com>' . "\r\n";
mail("peeyush@example.com", "Cronjob Complete - ". date('d-m-Y'), "At".date("H:i:s"), $headers);
?>
答案 0 :(得分:1)
您的PHP文件中可能包含一些相对包含。 所以:
希望这有帮助。
答案 1 :(得分:1)
运行此命令以查找目录:
<?php print __FILE__; ?>
试试这个:
* * * * * php /var/www/clients/client2/web6/web/global/cron/cron.php
这就是我的网站在我的网站上工作的方式。
答案 2 :(得分:1)
用户必须拥有执行脚本的权限。 此外,如果没有帮助,请检查日志:tail -f / var / log / cron