誰もが11.0-RELEASE-p8のphp-fpm 7で同様の問題を抱えていたか、それをデバッグする方法を知っていますか?
状況は数分後に始まり、クライアントに半分のページしか表示しません。すべてのページに約62kbのコンテンツが表示され、末尾に��������� 4.
Php-fpmのログファイル:
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80582 exited with code 0 after 0.005648 seconds from start
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80584 started
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80583 exited with code 0 after 0.005877 seconds from start
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80585 started
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80581 exited with code 0 after 0.007763 seconds from start
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80586 started
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80585 exited with code 0 after 0.005653 seconds from start
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80587 started
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80586 exited with code 0 after 0.005820 seconds from start
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80588 started
PHP設定:
$php -v
PHP 7.0.17 (cli) (built: Mar 17 2017 02:07:44) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.17, Copyright (c) 1999-2017, by Zend Technologies
PHP-FPM.conf
pm = dynamic
pm.max_children = 25
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 3
pm.max_requests = 0 ;changing to 500
コード内でexec関数を使用する場合、これはphp-fpmのバグです。それらをブロックして、がそのような問題を起こさないようにすることをお勧めします。
https://bugs.php.net/bug.php?id=73342
バグは過去4年間オープンしています。
まず、これは予想される動作です。メッセージは、php-fpm.confのデフォルトであるNOTICEとしてマークされます。
; Log level
; Possible Values: alert, error, warning, notice, debug
; Default Value: notice
;log_level = notice
Php-fpm設定ファイルでpm.max_requestsオプションが定義されていると、プロセスが終了して再生成されます。
例えば:
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries. For
; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default Value: 0
pm.max_requests = 500
この例で500と定義されている場合、php-fpmは500リクエストを処理した後、プロセスをリサイクルします。実際には、これらのメッセージは無害で情報を提供するだけなので、無視できます。
これらのメッセージをログに記録したくない場合は、ログレベルをnotice
のようなwarning
のように変更してください。