PHP CronJob不起作用

时间:2013-05-15 08:58:13

标签: php unix cron apache2 debian

我正在尝试设置一个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);
?>

3 个答案:

答案 0 :(得分:1)

您的PHP文件中可能包含一些相对包含。 所以:

  • 将PHP文件中的路径更改为绝对路径
  • 或首先移动到cronjob中的目录,然后执行PHP文件。您可以通过执行如下cronjob来执行此操作:cd / var / www / clients / client2 / web6 / web / global / cron /; php cron.php

希望这有帮助。

答案 1 :(得分:1)

运行此命令以查找目录:

 <?php print __FILE__; ?>

试试这个:

*   *   *   *   * php /var/www/clients/client2/web6/web/global/cron/cron.php

这就是我的网站在我的网站上工作的方式。

答案 2 :(得分:1)

          • [USER] / usr / local / bin / php /var/www/clients/client2/web6/web/global/cron/cron.php

用户必须拥有执行脚本的权限。 此外,如果没有帮助,请检查日志:tail -f / var / log / cron