2012-12-15 9 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. Нечто подобное могло бы работать в вашем кронтабе:

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

Я использовал это, но я не уверен, что он работает – user1893203

+0

Это не " похоже, работает? Хмм Подумайте, это PHP? – user1893203

+0

Возможно, вам стоит попытаться включить отчет об ошибках и написать стандартный вывод cronjob и стандартный вывод ошибки в какой-нибудь текстовый файл (добавьте это в строку crontab): '> some_location/cron.log 2> & 1' – s1lence

1

Я столкнулся с этой проблемой, прежде чем где мои Cronjobs просто случайно перестают работать;

просто запустите следующую команду:

/etc/init.d/cron restart

Когда я запустил эту команду, мой cronjobs начал работать снова

Вы должны работать ваши хроны через /etc/crontab

и пример линия моей кроны (для запуска каждую минуту каждого дня)

* * * * * root /usr/bin/php /var/www/cron.php * представляют время

root - представляет пользователю

/usr/bin/php это каталог, который я бегу мой PHP от

/var/www/cron.php - будет выполняться в файле PHP PHP-CLI

Другое дело, убедитесь, что у вас установлен php5-cli, чтобы гарантировать, что PHP может работать из командной строки PHP.

+0

Ну, это что мой сервер показывает, чтобы использовать .. Ниже приведенные ниже строки команд будут запускаться на веб-сервере для вас с выбранными вами интервалами. Обратите внимание, что путь является абсолютным, поэтому, если ваш скрипт называется test.pl и находится в вашем каталоге public_html /, тогда полный путь будет: - /home/sites/psychowars.com/public_html/test.pl. – user1893203

+0

Подождите .. Вы используете сервер? или веб-хостинг? –

+0

Я нахожусь на моем сервере – user1893203

Смежные вопросы