|
Πολλοί webmasters προβληματίζονται από 500,502 ζητήματα μετά τη μετάβαση σε nginx+php-fpm. Όταν το nginx λαμβάνει τον παραπάνω κωδικό σφάλματος, μπορεί να διαπιστωθεί ότι υπάρχει κάποιο είδος προβλήματος με το backend php-fpm που αναλύει το php, όπως σφάλμα εκτέλεσης ή χρονικό όριο εκτέλεσης. Το 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 από προεπιλογή και μπορείτε να την καθορίσετε τροποποιώντας την παράμετρο 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 πρέπει να ρυθμιστούν ταυτόχρονα και πρέπει να ενεργοποιήσετε το slowlog ταυτόχρονα με την ενεργοποίηση του 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)
Αντιγραφή κώδικαΟι αργές διαδρομές καταγραφής πρέπει να δημιουργηθούν χειροκίνητα
Συγκεκριμένα βήματα για την ενεργοποίηση της αργής καταγραφής 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
Αντιγραφή κώδικα
|