【问题标题】:Cron job not executing a PHP fileCron 作业不执行 PHP 文件
【发布时间】:2013-11-28 20:50:18
【问题描述】:

我最近添加了一个 cron 作业来每天执行一个 PHP 文件,但是数据库没有更新,因为它应该在 PHP 文件中。我假设这是因为 cron 作业没有运行。

这是我为 cronjob 输入的内容:

  @daily /etc/cron.php (located by executing crontab -l)

  -- php file --
  $db = new PDO("dsn", "username", "password");
  $db->exec("UPDATE subscriptions SET exp_date = exp_date - 1 WHERE payment_status = 'Completed'");

每当用户进行购买时,字段 exp_date 都会设置为 32,但不会通过我现有的 cronjob 减去 1。

任何帮助将不胜感激。

【问题讨论】:

  • php /etc/cron.php检查你的脚本是否在控制台中运行良好,如果你有一些路径使用例如$_SERVER var你会得到错误。
  • 在检查数据库后确实有效
  • 你在 crontab 的命令前加了php 吗? @daily php /etc/cron.php
  • 哦,它必须像@daily php /etc/cron.php ?
  • 是的,“php”应该是php的可执行文件,可能在/usr/bin/php,否则crontab会尝试作为unix命令执行

标签: php cron crontab


【解决方案1】:

使用crontab -e 并尝试使用以下代码。

0 0 * * *  <path>/php /etc/cron.php

这将在每天 00:00 运行,您应该提供正确的 php 路径(示例:/usr/bin/php5

注意:假设您的文件在 CLI 中运行良好。

如果没有以下权限,请重试。

chmod a+x /etc/cron.php

【讨论】:

    最近更新 更多