2009-11-17 17 views
5

मैंने एक साझा होस्टिंग वेब सर्वर पर एक PHP अनुप्रयोग स्थापित किया है। मुझे 500 Internal Server Error मिल रहा है। मुझे लगता है कि किसी भी लॉग फाइल तक पहुंच नहीं है, इसलिए मैं त्रुटि पृष्ठ को अस्थायी रूप से त्रुटि का ब्योरा देना चाहता हूं।मैं PHP आंतरिक सर्वर त्रुटि का विवरण कैसे प्रदर्शित करूं?

मुझे पता है कि एएसपी.Net में ऐसा कैसे करें लेकिन मैं PHP से परिचित नहीं हूं।

उत्तर

16

कोशिश:

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 
फ़ाइल के शीर्ष पर

+3

फ़ाइल अनुमतियां भी जांचें। कई बार यदि कोई फ़ाइल निष्पादन योग्य नहीं है तो यह 500 त्रुटि फेंक देगा। –

-1

एक "आंतरिक सर्वर त्रुटि" एक PHP त्रुटि नहीं है (जैसा कि नाम कहता है)। इसलिए, आपको या तो अपने सर्वर लॉग (जो आपके पास पहुंच नहीं है, जैसा दिखता है) देखना है या आप PHP से इसके बारे में कुछ भी नहीं कर सकते हैं।

+2

-1, सर्वर कॉन्फ़िगरेशन और सॉफ़्टवेयर के आधार पर PHP त्रुटियों को 500 के रूप में प्रस्तुत किया जा सकता है। – Dereleased

+0

वास्तव में सुरक्षा कारणों से, बहुत से साझा मेजबान दमन के हिस्से के रूप में एक PHP त्रुटि को 500 में बदल देते हैं। –

+0

उसके बारे में क्षमा करें। – Franz

2

मुझे संदेह है कि आपको PHP से यह त्रुटि मिल रही है। साझा होस्टिंग पर यह अधिक संभावना है कि एप्लिकेशन की डिफ़ॉल्ट। Htaccess कॉन्फ़िगरेशन त्रुटि उत्पन्न कर रहा है।

मेरा अनुमान RewriteBase सेट के बिना एक mod_rewrite होगा। phpinfo(); में मूल्यों पर

+0

यह पूरी तरह से संभव है, और 'htaccess' आमतौर पर डीबगिंग करते समय मेरा पहला अपराधी होता है, लेकिन उसने कभी नहीं कहा कि वह अपाचे का उपयोग कर रहा था। – Dereleased

+0

@ हटाया गया - PHP + SharedHosting, मैंने अभी गणित किया है। अगर मैं आईआईएस हूं तो मुझे आश्चर्य होगा। बीओएम का उल्लेख करने के लिए –

1

नज़र देखने के लिए अगर कुछ भी बाहर चिपक जाता है ... कोड में कहीं रख दिया और यह php संस्करण जानकारी का एक समूह प्रदर्शित करना चाहिए

4

जेरेमी मॉर्गन समाधान काम नहीं करता है, बनाने का प्रयास करें set_error_handler() का उपयोग कर अपनी खुद की लॉग फ़ाइल। आम तौर पर आवेदन की स्थिति ($ ग्लोबल्स और इतने पर) के बारे में कुछ जानकारी पर्याप्त जानकारी हो सकती है, लेकिन PHP (कम से कम कोशिश करने के लिए) आपको त्रुटि के बारे में सभी प्रकार की जानकारी पास करेगा और यह किस प्रकार की त्रुटि है।

इसके अलावा, डिबगिंग के "विभाजन और जीत" विधि का उपयोग करने का प्रयास करें। अपनी फ़ाइल के लगभग आधे से शुरू करें, और उसके बाद ऊपर की ओर बढ़ें यदि यह अभी भी क्रैश हो रहा है या नीचे की ओर है तो यह उस बिंदु तक चलता है। यदि आप अपना कोड नहीं हटाना चाहते हैं, तो /* comment out */ कोड को काटना है, या फ़ाइल में सभी शेष डेटा को अनदेखा करने के लिए __halt_compiler() विशेष निर्देश का उपयोग करें।

आखिरकार, एक चीज जिसने मुझे इसे ठीक करने की कोशिश कर पागल कर दिया, उसे Byte Order Mark कहा जाता है। PHP उस फ़ाइल की शुरुआत में बीओएम का मूल्यांकन कर रहा था, जिससे इसे आउटपुट भेजना पड़ा, और हेडर और इसी तरह भेजने की कोशिश करते समय समस्याएं उत्पन्न हुईं। शायद आपकी समस्या क्या नहीं है, लेकिन ज्ञान के लायक है।

+1

+1। – chelmertz

+1

बीओएम के लिए एक और +1। जब मैंने पहली बार शुरू किया तो उसने मुझे वापस फिट किया! –

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