|
多くのウェブマスターはnginx+php-fpmに切り替えた後、500,502件の問題に悩まされています。 nginxが上記のエラーコードを受信すると、php-fpmのバックエンド解析に実行エラーや実行タイムアウトなどの問題があると判断できます。 php-fpm.confには次のように説明request_slowlog_timeoutパラメータがあります - ; The timeout for serving a single request after which a PHP backtrace will be
- ; dumped to the 'slowlog' file. A value of '0s' means 'off'.
- ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
- ; Default Value: 0
- ;request_slowlog_timeout = 0
コードをコピーしますrequest_slowlog_timeoutが特定の秒request_slowlog_timeout =5に設定されている場合、スクリプトが5秒以上実行された場合、スクリプトはスローログファイルに記録されます
request_slowlog_timeout =0 は遅いログ出力がオフになっていることを意味します。 遅いログファイルの場所はデフォルトでphpインストールディレクトリのlogフォルダにあり、slowlog = log/$pool.log.slowパラメータを変更することで指定できます。 php-fpmのスローログ例では、スローログはプロセス番号、スクリプト名、特定のファイル、どのコードライン、実行するには長すぎる関数かを記録します。 - [21-Nov-2013 14:30:38] [pool www] pid 11877
- script_filename = /usr/local/lnmp/nginx/html/www.quancha.cn/www/fyzb.php
- [0xb70fb88c] file_get_contents() /usr/local/lnmp/nginx/html/www.quancha.cn/www/fyzb.php:2
- [21-Nov-2013 14:15:23] ERROR: [pool www] 'slowlog' must be specified for use with 'request_slowlog_timeout'
コードをコピーしますrequest_slowlog_timeoutとslowlogは同時に設定し、request_slowlog_timeoutをオンにするのと同時にSlowlogをオンにする必要があります - [21-Nov-2013 14:16:27] ERROR: Unable to create or open slowlog(/usr/local/lnmp/php/log/www.log.slow): No such file or directory (2)
コードをコピーします遅いログパスは手動で作成する必要があります
php-fpmのスローログを有効にする具体的な手順: - cd /usr/local/lnmp/php
- vi etc/php-fpm.conf
- 去掉request_slowlog_timeout 、slowlog的前缀分号';',设置request_slowlog_timeout =5;
- :wq
- 保存退出
- 创建慢日志目录
- mkdir log
- 重启php-fpm
- kill -INT `cat var/run/php-fpm.pid
- sbin/php-fpm
コードをコピーします
|