|
Daugelį žiniatinklio valdytojų vargina 500 502 problemos perėjus prie nginx+php-fpm. Kai nginx gauna aukščiau pateiktą klaidos kodą, galima nustatyti, kad yra kokia nors problema su backend php-fpm analizuojant php, pvz., vykdymo klaida arba vykdymo skirtasis laikas. php-fpm.conf turi parametrą request_slowlog_timeout aprašytą taip: - ; 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
Kopijuoti kodąKai request_slowlog_timeout nustatyta konkreti sekundė request_slowlog_timeout =5, tai reiškia, kad jei scenarijus vykdomas ilgiau nei 5 sekundes, scenarijus bus įrašytas į lėtą žurnalo failą
request_slowlog_timeout =0 reiškia, kad lėta žurnalo išvestis išjungta. Lėtas žurnalo failo vieta yra žurnalo aplanke php diegimo kataloge pagal numatytuosius nustatymus, ir jūs galite nurodyti jį keičiant slowlog = log / $pool.log.slow parametrą. PHP-FPM lėto žurnalo pavyzdys, lėtas žurnalas įrašys proceso numerį, scenarijaus pavadinimą, konkretų failą, kurią kodo eilutę, kuri funkcija yra per ilga vykdyti. - [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'
Kopijuoti kodąrequest_slowlog_timeout ir slowlog reikia nustatyti tuo pačiu metu, o jūs turite įjungti slowlog tuo pačiu metu, kai įjungiate request_slowlog_timeout - [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)
Kopijuoti kodąLėtus žurnalo kelius reikia sukurti rankiniu būdu
Konkretūs žingsniai, įgalinantys php-fpm lėtą registravimą: - 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
Kopijuoti kodą
|