【问题标题】:PHP CronJob doesn't workPHP CronJob 不起作用
【发布时间】:2013-05-09 18:34:02
【问题描述】:

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

【问题讨论】:

    标签: php unix cron apache2 debian


    【解决方案1】:

    运行这个找到目录:

     <?php print __FILE__; ?>
    

    试试这个:

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

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

    【讨论】:

    • 也没有工作,我也不明白为什么它会工作,因为客户端不是根目录
    • 什么是根目录?
    • 嗯,你的用户名是什么?
    • 我从 root 帐户登录,但我正在通过 IspConfig 控制面板添加 cronjobs
    • 运行我在答案中输入的那一行,告诉我你得到了什么
    【解决方案2】:

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

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

    希望这会有所帮助。

    【讨论】:

    • 不,cron 文件没有使用任何包含 atm。它只是想给我发邮件。
    • 那么您似乎将 cronjob 添加到无权执行脚本的用户。
    • 所有与cronjob相关的文件的权限为0777
    • 它是如何工作的?我正在使用 IspConfig 控制面板设置 cronjobs,它执行使用链接指定的 cron 作业,但不是绝对路径
    【解决方案3】:
            • [用户] /usr/local/bin/php /var/www/clients/client2/web6/web/global/cron/cron.php

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

    【讨论】:

    • 我是按原样输入 [USER] 还是将其替换为其他内容?
    • 放置一个有权执行脚本的用户名。它可能与您用于 SSH 的用户相同。 * * * * * 用户名 /usr/local/bin/php script.php
    • root /usr/bin/php /var/www/clients/client2/web6/web/global/cron/cron.php
    猜你喜欢
    • 2013-12-03
    • 2015-05-21
    • 1970-01-01
    • 2021-07-05
    • 2015-04-25
    • 2015-03-31
    • 2018-02-26
    • 1970-01-01
    • 2021-10-24
    相关资源
    最近更新 更多