3

PHPスクリプトはZipArchiveクラスを使用しており、長時間実行される可能性があります。静かに死んでいますが、部分的なzipファイルを書き込んでいるので、error_log()ステートメントを$ zip-> close()にラップしました。(ini_setは、エラーログをファイルに設定し、このコードの直前にE_ALLを設定します)error_log( "calling zip-> close()"); $ rc = $ zip-> close(); error_log( "zip-> close()returned $ rc");

ログファイルには最初のerror_logが表示されますが、2番目のerror_logは表示されません。unix topコマンドは、合計CPU時間cで実行されているプロセスを示します。無効になる2.5分前。

また、set_error_handler()を使用してエラーをトラップし、ハンドラーがerror_log()を使用してキャッチを記録しようとしました。ただし、ログファイルには何も表示されません。

おそらくApacheによってプロセスがバウンスされていると思います(ApacheまたはPHPを制御することはできません)。

私の質問は、error_logで使用されているファイルにこのエラーが表示されないのはなぜですか?

問題を回避するための提案をありがとう、しかし私の質問は残っています:

ログにこのエラーが表示されないのはなぜですか?または、set_error_handler()を介してこのエラーをキャッチできないのはなぜですか?

4

1 に答える 1

1
set_time_limit(0);

0=無期限

于 2012-12-02T22:49:30.593 に答える