1

今日、私はcronジョブについて学び、SSHを開いて、1and1 cronジョブチュートリアルに従いました。チュートリアルファイルと手順は正常に機能しましたが、同じ手順を実行したが、独自のPHPスクリプトでは機能しませんでした。以下は、cronジョブコマンドです。使用しました

* * * * * /usr/bin/php /path-to-webspace/heal.php

以下はheal.phpファイルです。このファイルは、事前にテストしたので、cronなしで意図したとおりに機能します。

<?php

include('onedirectorydown/database_connection.php');

$resetAllHealth = "UPDATE users SET Health = Health + 1000";
$executeAH = mysqli_query($dbc, $resetAllHealth);

?>

動作するかどうかをテストするだけなので、毎分実行したいのですが、動作しません。ただし、1and1チュートリアルのサンプルは動作し、基本的に正確に実行しました。ファイルの内容だけをheal.phpに格納します。

なぜ実行されないのか誰かに教えてもらえますか?

4

2 に答える 2

1

CRON ジョブの一般的な問題は、必要なインクルード ファイルが正しく機能しないことです。例えば:

include '/database.php';

/var/www/database.phpブラウザから実行した場合はインクルードしようとするかもしれませんが、適切なユーザーの CRON ジョブから実行した場合はインクルードしようとするかもしれません/home/username/database.php

呼び出しを次のように置き換えることを検討してください

include $_SERVER['DOCUMENT_ROOT'].'/database.php';

そして、それが役立つかどうかを確認します。

于 2013-01-28T19:03:11.767 に答える
0

最後のコメントを見ると、cli の php.ini ファイル (通常は /etc/php5/php.ini の下) に適切な mysqli 拡張機能がインストールされていない可能性があります。

注意: 「apache」スクリプトと「コマンド ライン」スクリプトには、2 つの異なる php.ini ファイルがあります。

于 2013-01-28T18:31:49.777 に答える