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()を介してこのエラーをキャッチできないのはなぜですか?