2012-12-15 122 views
-1

我有一個PHP文件給用戶1點能量,如果他們的能量小於其max_energy這樣的:的cronjob沒有運行

<?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應該給用戶1每2米的能量inutes,但它沒有做任何事情。他們的理由是什麼?

+1

何處定義了$ energy和$ max_energy? – nickb

+0

和db連接? –

+0

所有變量定義在我粘貼的代碼上面 – user1893203

回答

2

cronjob只能執行可執行文件。所以你必須運行帶有php可執行文件的腳本。像這樣的東西可能會在crontab工作:

/usr/bin/php -q /home/sites/psychowars.com/public_html/psychowars/cronjobs/energy.php 
+0

我用過,但我不確定它是否在工作 – user1893203

+0

它沒有' t似乎工作?嗯認爲這是PHP? – user1893203

+0

也許你應該嘗試啓用錯誤報告,並將cronjob標準輸出和標準錯誤輸出寫入這樣的文本文件(附加到crontab行):'> some_location/cron.log 2>&1' – s1lence

1

我跑進前在我的Cronjobs只是隨機停止運行這個問題;

只需運行以下命令:

/etc/init.d/cron restart

當我運行這個命令,我cronjobs開始通過 /etc/crontab

和實例再次運行

你應該運行您的cron我的cronjobs線(每天運行的每一分鐘)

* * * * * root /usr/bin/php /var/www/cron.php*表示時間

root - 代表用戶

/usr/bin/php是我跑從

/var/www/cron.php我的PHP目錄 - 是PHP文件將在被執行PHP-CLI

另一件事,請確保您已安裝php5-cli以確保PHP可以從PHP命令行運行。

+0

嗯,這是我的服務器顯示使用.. 下面的命令行將按照您選擇的時間間隔在Web服務器上運行。請注意,路徑是絕對路徑,所以如果腳本名爲test.pl並位於public_html /目錄中,則完整路徑爲: - /home/sites/psychowars.com/public_html/test.pl。 – user1893203

+0

等等..你在使用服務器嗎?或虛擬主機? –

+0

我在我的服務器 – user1893203