PHP-FPM को NGINX पर प्रति-वर्चुअली लॉग फाइल में लिखने के लिए कैसे कॉन्फ़िगर करें


11

मेरे पास नोगेंक्स और पीएचपी-एफपीएम के साथ फेडोरा 16 है। सब कुछ बहुत अच्छा काम कर रहा है। PHP नोटिस, चेतावनी, त्रुटियों आदि के साथ सभी लॉग में हैं /var/log/php-fpm/www-error.log

क्या Nginx के लिए त्रुटि लॉग के रूप में कॉन्फ़िगर की गई उचित लॉग फ़ाइलों में त्रुटियों को लिखने के लिए PHP-FPM को कॉन्फ़िगर करने का एक तरीका है? इसलिए मैं PHP- वर्चुअलाइज़ेशन प्रति-वर्चुअलहोस्ट में लॉग इन करना चाहता हूं न कि किसी ग्लोबल फ़ाइल में। (जैसे Apache Httpd और PHP में)।

जवाबों:


14

PHP-FPM निर्देश: catch_workers_output = yes त्रुटियों का कारण होगा पीएचपी stdout / stderr को nginx को वापस भेजने के लिए भेजता है, और उन्हें लॉग किया जाएगा।

PHP 5.2.4 और नए में, निर्देशन डिस्प्ले_रियर्स अब एक बूलियन नहीं है, लेकिन एक विकल्प के रूप में '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 कुछ चर का समर्थन करता है, जैसे $ पूल (जो आपके लिए, संभवतः 'www' लौटाएगा)।

यदि आपके पास 1 से अधिक पूल हैं, तो आप उन्हें आसानी से अलग से लॉग इन कर सकते हैं।

स्रोत कोड के माध्यम से एक त्वरित ब्राउज़ से, ऐसा लगता है कि $ पूल एकमात्र ऐसा चर है, हालांकि।


1
हम्म, के साथ कुछ मुद्दाdisplay_errors="stderr" लगता है । क्या आपने इसे काम करने के लिए परीक्षण किया है?
पचेरियर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.