2009-12-01 12 views
15

यह प्रश्न अधिक सामान्य तरीके से पहले पूछा गया है। मैं अपने उत्पादन सर्वर पर किसी विशेष पृष्ठ पर त्रुटि संदेश प्रदर्शित करना चाहता हूं, और मेरे पास php.ini फ़ाइल तक पहुंच नहीं है। अपने उत्पादन सर्वर पर किसी विशेष PHP पृष्ठ पर सभी त्रुटियों और चेतावनियों को सक्षम करने का सबसे अच्छा तरीका क्या है?PHP उत्पादन सर्वर - त्रुटि संदेशों को चालू करें

मैंने ERROR_REPORTING(E_ALL); को आजमाया है।

उत्तर

32

त्रुटियों को सक्षम करने के लिए, आप बिंदु जहां उन ट्रिगर कर रहे हैं (उदाहरण के लिए, अपने PHP स्क्रिप्ट की शुरुआत में) से पहले error_reporting का उपयोग करना चाहिए:

error_reporting(E_ALL); 

और त्रुटि प्रदर्शित, आपको चाहिए करने के लिए display_errors कॉन्फ़िगर करें:

ini_set('display_errors', 'On'); 

(यह एक है जिसका अर्थ है कि आप इसे इस तरह से सक्षम करने के लिए भी कॉन्फ़िगर करने के बाद हो सकता है एक उत्पादन सर्वर पर अक्षम है या नहीं, घ error_reporting)


बेशक , यह सब एक if ब्लॉक में समझाया जा सकता है, यकीन है कि केवल आप त्रुटि संदेश देख सकते हैं बनाने के लिए - खासकर यदि आप एक जीवित उत्पादन वेबसाइट पर यह कर रहे हैं; उदाहरण के लिए:

if ($_SESSION['is_admin']) 
{ 
    error_reporting(E_ALL); 
    ini_set('display_errors', 'On'); 
} 


और चीज़ें थोड़ी खूबसूरत पाने के लिए, आप भी html_errors कॉन्फ़िगर करने के लिए चाहते हो सकता है:

ini_set('html_errors', 'On'); 
+0

मुझे व्यवस्थापक लॉग ऑन होने पर त्रुटियों को चालू करने का विचार पसंद है, फिर जब भी मैं साइट की जांच करता हूं तो मैं तुरंत देख सकता हूं कि त्रुटियों को चालू किए बिना क्या गलत है। धन्यवाद – andrew

+0

आपका स्वागत है (मैं कभी-कभी उस चाल का भी उपयोग करता हूं - यह एक आसान तरीका है, लॉग फ़ाइलों के माध्यम से जाने से कहीं ज्यादा आसान है) :-) मज़े करो! –

+2

मैंने इस जवाब को "मैं रिपोर्टिंग त्रुटि कैसे चालू करूं?" के कैननिकल उत्तर के रूप में जोड़ा है? PHP टैग विकी में। –

1

एक अलग विधि सब एक साथ के साथ एक त्रुटि हैंडलर रजिस्टर करने के लिए होगा: set_error_handler

इस तरह, आप त्रुटियों के साथ क्या करना चुन सकते हैं: उन्हें व्यवस्थापक को मेल करें, दोस्ताना त्रुटि संदेश प्रदर्शित करें, फ़ाइल/डीबी पर लॉग इन करें ...

+0

यह दिलचस्प लगता है, उन्हें मेरे ईमेल पर भेजना विशेष रूप से उपयोगी होगा, बीमार कुछ धन्यवाद – andrew

1

ध्यान देने योग्य एक और बात यह है कि आप शायद प्रदर्शन त्रुटियों को प्रदर्शित नहीं करना चाहते हैं, तो आप उन्हें फ़ाइल/डेटाबेस में लॉग करना चाहते हैं। उत्पादन वातावरण में बस आपके उपयोगकर्ताओं को त्रुटियां दिखाना पर्याप्त नहीं है; उन्हें समस्याओं की रिपोर्ट करने के लिए कहने से आपको यह पता चल जाएगा कि आपके सर्वर में क्या देर हो चुकी है जब तक कि बहुत देर हो चुकी न हो। अपनी मूल त्रुटि और अपवाद हैंडलर में, सुनिश्चित करें कि इस मुद्दे को रिकॉर्ड करना है (जितना संभव हो उतना डीबगिंग जानकारी - स्टैक ट्रेस, उपयोगकर्ता आईपी, ब्राउज़र, एप्लिकेशन संस्करण इत्यादि) लगातार स्टोरेज में।

4

आपको वास्तव में उन्हें उत्पादन सर्वर पर प्रदर्शित नहीं करना चाहिए। कुछ लॉगिंग सिस्टम बनाने का सबसे अच्छा तरीका है।

इसे पुन: प्रयोज्य बनाने के लिए ध्यान रखें!

संबंधित मुद्दे