1

を使用していくつかの Web サイトを使用しphp scriptて生成するために を実行する必要があります。データベースから Web サイトのアドレスを取得し、スクリーンショットを生成した後にこのレコードを削除します。私は それを使用しませんでしたが、それを使用して同じファイルにアクセスすると正常に動作し、コマンドを使用してこのスクリプトを実行すると正常に動作します。次に、別のファイルを作成し、を使用して URL にアクセスしました。このファイルを追加すると、数日間は正常に機能しましたが、現在、このアプローチも機能していません。何が起こったのかわかりません。これらのファイルは変更していません。そのURLにアクセスするコマンドも試しましたが、必要な出力を取得できませんでした。私のcrontabは今このようになっています snapshotsCutyCaptcrone job*/5 * * * * /usr/bin/php -f /path/generate.phpcrone jobbrowserphpcommand linefile_get_contentscrone jobwget*/5 * * * * wget "http://www.mysite.com/generate.php" -O /dev/null

奇妙なことは、cron ジョブが正常に実行され、データベースからデータが取得され、レコードも削除されますが、イメージは更新されないことです。

ブラウザを使用してアクセスした場合ではなく、クローンジョブを使用して画像を生成できない権利または同様の問題がありますか。

私が行き詰まっているのを助けてください。

4

2 に答える 2

0

あなたのスクリプトが内部で何をしているのかはわかりませんが、ユーザーの cron ジョブはユーザーの環境を継承しないことに注意してください。そのため、php スクリプトがシェル コマンドを実行している場合、PATH の問題が発生している可能性があります。

スクリプトからシェル コマンドを実行している場合は、PHP スクリプト内から PATH 環境変数を設定してみて、それが役立つかどうかを確認してください。

于 2012-04-26T17:29:49.460 に答える
0

このページには、基本認証などのユーザー資格情報がありますか? その場合、 wget リクエストでユーザー名とパスワードを次のように定義する必要があります

wget  --http-user=user --http-password=password "http://url" ?

phpコマンドラインからyorスクリプトを実行して別の解決策を試して、crontabが次のようになるようにします

*/5 * * * * /usr/bin/php -f /path/to/generate.php 

このソリューションを試してみてください。サーバーにアクセスしてデータに対してバックグラウンド操作を実行するよりも優れています

これが役立つことを願っています

于 2012-04-26T17:31:30.373 に答える