0

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

3 回答 3

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

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

于 2013-05-15T09:24:03.690 回答
1

运行这个找到目录:

 <?php print __FILE__; ?>

尝试这个:

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

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

于 2013-05-15T09:12:09.023 回答
1

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

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

希望这可以帮助。

于 2013-05-15T09:06:33.007 回答