2006.11.07

定期的にPHPスクリプトを実行させるには

WEBサーバの制約で、CLI版のPHPがインストールされていない、
または利用できないことがあると思います。
そんな環境で、PHPのバッチ処理を行う場合の一つの方法を紹介します。

方法としてはとても簡単です。
Linuxのwgetコマンドを利用して、CronでPHPプログラムを呼び出すだけです。
wgetコマンドオプションの--delete-afterを使用すれば、ファイル
取得後すぐに削除されます。

処理に時間がかかり、何も出力されない時間が長く続くとクライアント側で
タイムアウトを起こしてしまうので、処理中になんらかのデータを
クライアント側に流す必要があります。

echo "<!--";

For ($i = 1; $i < 100000; $i++) {

処理

echo ".";
flush();
}
echo "-->";

その他にPHPのタイムアウト時間の設定が変更可能であれば
php.iniのmax_execution_timeの設定を変更します。
むやみに大きい時間に設定してしまうと、プログラムが暴走した場合に
歯止めがきかなくなってしまうので、注意が必要です。

Apache の場合はTimeoutの設定、IISの場合はCGIタイムアウト
関数の設定を変更する必要もあるかもしれません。

トラックバック

この一覧は、次のエントリーを参照しています: 定期的にPHPスクリプトを実行させるには:

» phpでcron 送信元 web制作備忘録
cronでphpを呼び出す時にたまに使うのでメモ 定期的にPHPスクリプトを実行させるにはより。 wget --delete-after 呼び出すファ... [詳しくはこちら]

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
nishimaki