3

私のphpアプリケーションでは、db2データベースを復元します。正常に動作しますが、ここに2.9GBで終わる巨大なものが1つあり500 - Internal Server Errorます。

exec()を使用して、.php(cp、db2など)からunixシェルコマンドを実行します。firefoxまたはrubyスクリプトから実行した場合も、同じエラーが発生します。

最初にバックアップイメージファイルをコピーする必要がありますが、これには数分かかります。次に、db2を呼び出してイメージを復元します。この特定のデータベースの場合、phpプロセスは上記のエラーで終了します。次に、これをエラーログファイルで見つけることができます

2012-08-02 10:25:18: (mod_fastcgi.c.2566) unexpected end-of-file (perhaps the fastcgi process died): pid: 0 socket: tcp:127.0.0.1:9090
2012-08-02 10:25:18: (mod_fastcgi.c.3352) response not received, request sent: 2758 on socket: tcp:127.0.0.1:9090 for /wrational/tools/rationalTest.php?mode=restore&database=RATIONAL&from_database=dbb&dbbackuptype=weekly, closing connection

php.iniでとの両方default_socket_timeoutmax_execution_time5660に設定し、によって設定されていることを確認しましたが、役に立たphpinfo()なかったようです。

これをどのように機能させることができるか考えていますか?

アップデート

40分後に死んだようです。access.logファイルの対応する行は次のようになります

"GET /rational/tools/rationalTest.php?mode=restore&from_database=dbb&dbbackuptype=weekly HTTP/1.1" 500 369 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:11.0) Gecko/20100101 Firefox/11.0"
4

1 に答える 1

1

php-fpm.iniのrequest_terminate_timeoutオプションが問題を引き起こしていたようです。30分に設定しました。0に変更しましたが、今のところ良さそうです。ただし、さらにテストを行う必要があります。

; The timeout for serving a single request after which the worker process will
; be killed. This option should be used when the 'max_execution_time' ini option
; does not stop script execution for some reason. A value of '0' means 'off'.  
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
; Default Value: 0
于 2012-08-06T01:27:33.377 に答える