|
Viele Webmaster haben nach dem Wechsel zu nginx+php-fpm mit 500.502 Problemen zu kämpfen. Wenn nginx den oben genannten Fehlercode erhält, kann festgestellt werden, dass es ein Problem mit dem Backend-PHP-FPM-Parsing gibt, wie zum Beispiel ein Ausführungsfehler oder Ausführungszeit. php-fpm.conf hat einen Parameter request_slowlog_timeout der so beschrieben wird - ; 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
Code kopierenWenn request_slowlog_timeout auf eine bestimmte Sekunde request_slowlog_timeout =5 gesetzt ist, bedeutet das, dass ein Skript, das länger als 5 Sekunden ausgeführt wird, in der langsamen Logdatei gespeichert wird
request_slowlog_timeout =0 bedeutet, dass die langsame Log-Ausgabe deaktiviert ist. Der Slow Log-Dateistandort befindet sich standardmäßig im Log-Ordner im PHP-Installationsverzeichnis, und du kannst ihn angeben, indem du den Parameter slowlog = log/$pool.log.slow änderst. Beispiel: PHP-FPM Slow Log: Das Slow Log zeichnet die Prozessnummer, den Skriptnamen, die spezifische Datei, welche Codezeile und welche Funktion zu lang zum Ausführen ist. - [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'
Code kopierenrequest_slowlog_timeout und Slowlog müssen gleichzeitig eingestellt werden, und du musst Slowlog gleichzeitig mit dem Einschalten des 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)
Code kopierenLangsame Log-Pfade müssen manuell erstellt werden
Konkrete Schritte zur Ermöglichung des langsamen php-fpm-Loggings: - 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
Code kopieren
|