【问题标题】:Cronjob does not workCronjob 不工作
【发布时间】:2014-06-05 05:32:16
【问题描述】:

我知道这个问题被问过很多次了,但大部分答案都没有真正的用处。

所以我用crontab -e 编辑了crontab。它是空的,我只添加了一行

*/1 * * * * php5 /var/www/cron.php 我认为它将每 1 分钟执行一次 cron.php。我保存了文件,但显然没有执行(在我的 php 文件中,我只有

<?
$file = 'test.txt';
file_put_contents($file, "Work");

并且它没有被创建。我查看并将 cron.php 的权限修改为 777。php 安装为 apache 模块。

让我困扰的是,当我从命令行执行php5 /var/www/cron.php 时,我只看到文件的内容并没有执行。

我做错了什么?

我也尝试使用带有 */1 * * * * /usr/bin/php5 /var/www/cron.php 的完整路径,但也没有运气。

【问题讨论】:

  • 尝试提供完整路径,而不仅仅是文件名。
  • 致要关闭它的人。这不是错误。在这种情况下,人们不知道作为 CLI 和 Apache 模块运行的 apache 的配置文件是不同的。

标签: php cron


【解决方案1】:

脚本的第一行应该是:

<?php

您可能在 Apache PHP 配置中启用了短标签,但在 CLI PHP 配置中没有启用。

【讨论】:

  • 你是对的,但我认为这不是问题,因为他可能可以手动运行它。我相信正在创建文件 - 只是不在他期望的文件夹中......
  • 他说他不能手动运行它。当他试图手动运行它时,它会输出脚本源代码,它不会运行它。
  • 你是绝对正确的。谢谢你。我不知道 CLI 和 Apache 有不同的配置。谢谢。
  • 您可能每分钟都会收到包含脚本内容的电子邮件。
  • cron 自动将任何 cron 作业的标准输出和标准错误发送到运行该作业的用户名。要禁用它们,请将输出重定向到文件或 /dev/null,例如php5 /var/www/cron.php &gt;/dev/null 2&gt;&amp;1
【解决方案2】:
  • 尝试使用php的完整路径(例如/usr/local/bin/php)
  • 尝试使用&lt;?php 而不是&lt;?

【讨论】:

    猜你喜欢
    • 2011-11-02
    • 2017-10-08
    • 1970-01-01
    • 2018-04-18
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    相关资源
    最近更新 更多