วิธีกำหนดค่า PHP-FPM บน NGINX ให้เขียนลงในไฟล์บันทึกต่อ virtualhost


11

ฉันมี Fedora 16 กับ Nginx และ PHP-FPM ทุกอย่างทำงานได้ดีมาก บันทึกทั้งหมดที่มีประกาศ PHP, คำเตือนข้อผิดพลาดอื่น ๆ /var/log/php-fpm/www-error.logที่อยู่ใน

มีวิธีกำหนดค่า PHP-FPM ให้เขียนข้อผิดพลาดในไฟล์บันทึกที่เหมาะสมซึ่งกำหนดค่าเป็นบันทึกข้อผิดพลาดสำหรับ Nginx หรือไม่ ดังนั้นฉันต้องการบันทึกข้อผิดพลาด PHP ต่อ virtualhostไม่ใช่ไฟล์เดียวทั่วโลก (เหมือนใน Apache Httpd และ PHP)

คำตอบ:


14

คำสั่ง PHP-FPM: catch_workers_output = yes จะทำให้เกิดข้อผิดพลาด PHP ส่งไปยัง stdout / stderr เพื่อส่งกลับไปยัง nginx และพวกเขาจะถูกบันทึกไว้

ใน PHP 5.2.4 หรือใหม่กว่านั้นdirect_ display_errorsไม่ใช่บูลีนอีกต่อไป แต่จะยอมรับ 'stderr' เป็นตัวเลือก สิ่งนี้ควรทำให้เกิดข้อผิดพลาดทั้งหมดเพื่อกลับไปยัง nginx และถูกบันทึกต่อ vhost

ดังนั้นในการกำหนดค่า PHP-FPM ของคุณ:

php_admin_value[display_errors] = 'stderr'

ตัวเลือกอื่นของคุณคือคำสั่ง:

php_admin_value[error_log] = /var/log/fpm-php.www.log

สิ่งที่คุณกำลังใช้อยู่ตอนนี้ php-fpm.conf สนับสนุนตัวแปรบางตัวเช่น $ pool (ซึ่งสำหรับคุณอาจจะส่งคืน 'www')

หากคุณมีมากกว่า 1 พูลคุณสามารถบันทึกแยกต่างหากได้อย่างง่ายดาย

จากการเรียกดูอย่างรวดเร็วผ่านซอร์สโค้ดดูเหมือนว่า $ pool เป็นเพียงตัวแปรดังกล่าวเท่านั้น


1
อืมดูเหมือนว่าจะมีปัญหาบางอย่างกับ display_errors="stderr"คุณได้ทดสอบให้ใช้งานได้หรือไม่
Pacerier
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.