-1

我有一个 PHP 文件,如果用户的能量小于max_energy这样的能量,则可以为用户提供 1 能量:

<?php
if ($energy < $max_energy) {
    $sql = "UPDATE users SET energy=(energy + 1) WHERE id='".$id."'";
    $res = mysql_query($sql);
}
?>

这是我服务器上运行 cronjob 的命令行:

/home/sites/psychowars.com/public_html/psychowars/cronjobs/energy.php  

好吧,当我手动转到链接psychowars.com/psychowars/cronjobs/energy.php时,它会给我 1 能量,因为我的能量小于$max_energy,但实际的 cronjob 应该每 2 分钟给用户 1 能量,但它是什么都不做。他们有什么理由吗?

4

2 回答 2

2

cronjob 只能执行可执行文件。因此,您必须使用php可执行文件运行脚本。像这样的东西可能在你的 crontab 中起作用:

/usr/bin/php -q /home/sites/psychowars.com/public_html/psychowars/cronjobs/energy.php
于 2012-12-15T17:39:46.470 回答
1

在我的 Cronjobs 随机停止运行之前,我遇到过这个问题;

只需运行以下命令:

/etc/init.d/cron restart

当我运行此命令时,我的 cronjobs 再次开始运行

你应该运行你的 cron /etc/crontab

和我的 cronjobs 的示例行(每天每分钟运行)

* * * * * root /usr/bin/php /var/www/cron.php 代表*时间

root- 代表用户

/usr/bin/php是我从中运行我的 PHP 的目录

/var/www/cron.php- 是在 PHP-CLI 中执行的 php 文件吗

另一件事,确保您已php5-cli安装以确保 PHP 可以从 PHP 命令行运行。

于 2012-12-15T17:59:24.600 回答