2011-12-19 6 views
6

कभी कभी मैं कुछ बुरी तरह से गठन PHP कोड होगा और मैं एक 500 त्रुटि मिल जाएगा। मैं विंडोज 7 लैपटॉप पर अपाचे 2.2 चला रहा हूं। एक आईडीई के रूप में मैंने PhpStorm का उपयोग करना शुरू कर दिया है।पीएचपी 5.3 - डिबगिंग - - 500 त्रुटियाँ संबंधी समस्याओं का निवारण पार्स त्रुटि

इन त्रुटियों को पकड़ने के लिए और लाइन नंबर के बारे में सूचित किया सबसे अच्छा तरीका क्या है? ओओपी से संबंधित वाक्यविन्यास त्रुटियां 500 त्रुटियों को क्यों फेंकती हैं और फ़ंक्शन समस्याएं सामान्य त्रुटियों को वापस करती हैं?

सिंटैक्स गलती का उदाहरण: दो कॉलन के बजाय एक कॉलन के साथ कक्षा से स्थिर विधि को कॉल करना।

अद्यतन: कृपया स्वीकृत उत्तर और सभी टिप्पणियां देखें।

+0

साथ रन टाइम पर यह सब नियंत्रित कर सकते हैं मुझे यकीन है कि आप "सामान्य त्रुटि" से क्या मतलब है नहीं कर रहा हूँ? यदि कोड सिंटैक्स त्रुटि के कारण पार्स करने में विफल रहता है तो मैं लॉग में संकलन त्रुटि विवरण के साथ वेब सर्वर से 500 की अपेक्षा करता हूं (उपयोगकर्ता को डिस्प्ले में नहीं)। – David

उत्तर

12

PHP "500" के साथ प्रतिक्रिया देगा जब इसे E_PARSE, E_ERROR और बिना अपवाद अपवादों का सामना करना पड़ता है। 500 "आंतरिक सर्वर त्रुटि" के लिए HTTP प्रतिक्रिया कोड है - अनुरोध को संसाधित करते समय कुछ अप्राप्य हुआ। अधिमानतः E_ALL - -

अपने php.ini में, एक विकास मशीन पर, आप के लिए (कम से कम) E_NOTICE अपने error_reporting स्तर निर्धारित करना चाहिए और यह सुनिश्चित करें display_errors पर है। यह आपको "500" त्रुटियों सहित ब्राउज़र में त्रुटि संदेश दिखाएगा।

आप भी अपने अपाचे त्रुटि लॉग की जाँच कर सकते, त्रुटियों वहाँ सूचीबद्ध किया जाएगा, जब तक कि log_errors php.ini में सक्षम है। डिफ़ॉल्ट रूप से, यह <apache_ServerRoot>\logs\error.log पर होगा।

तुम भी ini_set() और error_reporting()

+0

वह स्थिर स्थिति एक E_PARSE त्रुटि होनी चाहिए। इस मुद्दे को ढूंढना इतना मुश्किल था - मैं सोच रहा था कि एक बेहतर तरीका होना चाहिए। – BuddyJoe

+0

गलती त्रुटि_ रिपोर्टिंग चालू हो गई। +1 और टाइमज़ोन सेट। – BuddyJoe

+0

@ ब्रूनोट अगर आपको 'error_reporting' वाले संदेशों को नहीं दिखाई देता है, तो संभावना है कि' display_errors' बंद है। ऐसी स्थितियां हैं जिनमें त्रुटि संदेश आउटपुट नहीं होगा, लेकिन यह केवल तभी सचमुच है जब PHP आंतरिक रूप से कुछ गलत हो गया और यह दुर्घटनाग्रस्त हो गया। जब ऐसा होता है, तो आमतौर पर अपाचे लॉग में एक संदेश होता है जो आपको बताता है कि * यह * हुआ, हालांकि डीबगिंग * क्यों * यह हुआ वास्तव में बहुत मुश्किल हो सकता है। इस स्थिति में, कमांड लाइन से स्क्रिप्ट को चलाने * कभी-कभी * एक उपयोगी त्रुटि संदेश प्राप्त करने में मदद करता है, लेकिन हमेशा नहीं। – DaveRandom

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