2015-03-10 3 views
5

मैं सेंटोस 7 पर PHP 5.4 चला रहा हूं और जब एक PHP फ़ाइल है जो त्रुटि उत्पन्न करती है (या तो अपवाद, या वाक्यविन्यास त्रुटि) यह एक HTTP 200 स्थिति देता है 500 के बजाय कोड।अपाचे/PHP त्रुटि पृष्ठों पर HTTP स्टेटस कोड 200 लौटाता है

PHP को त्रुटि होने पर 500 सर्वर त्रुटि वापस करने के लिए मैं इसे कैसे प्राप्त कर सकता हूं?

मैंने अन्य स्टैक ओवरफ्लो पोस्ट को देखने का प्रयास किया है, और वे सभी अपने 500 त्रुटि कोड को लौटने के आसपास समाधानों को इंगित करते हैं (जो मुझे लगता है कि मुझे मैन्युअल रूप से आग लगने की आवश्यकता के बिना PHP का सामान्य व्यवहार होना चाहिए http हेडर, इस जानकारी के अनुसार: PHP emitting 500 on errors - where is this documented?) यह Xdebug को एक संभावित समस्या के रूप में भी इंगित करता है, लेकिन जब भी मैं Xdebug के बिना सर्वर का पुनर्निर्माण करता हूं तब भी मेरी समस्या बनी रहती है।

संबंधित सेटिंग्स मैं हैं:

  • display_errors:
  • display_startup_errors पर:
  • error_reporting पर: -1 (इस का कारण बनता है सभी त्रुटियों को सूचित किया जाना)
+1

आप क्यों चाहेंगे? अपाचे त्रुटियां और PHP त्रुटियां एक ही चीज़ नहीं हैं –

+0

लेकिन वह शायद किसी भी PHP-side अपवाद को इस तरह से संभाल लेंगे कि PHP स्वचालित रूप से '500' के साथ प्रतिक्रिया देता है। –

+0

@ डैगन मैं अपाचे द्वारा प्रदत्त http स्टेटस कोड के बारे में बात कर रहा हूं। मैं उस व्यवहार को प्राप्त करने की कोशिश कर रहा हूं जहां एक PHP त्रुटि 500 ​​स्थिति कोड ट्रिगर करती है। –

उत्तर

7

के अनुसार a PHP bug report, यहां वर्णित व्यवहार यह है कि display_errors कैसे सेट किया गया है।

[2010-02-03 19:03 यूटीसी] [email protected]

कारण है कि प्रदर्शन त्रुटियों की चालू करने की आवश्यकता है, क्योंकि दिखाया गया त्रुटियों उत्पादन उत्पन्न, और उत्पादन के लिए हेडर का कारण बनता है बाहर भेजो। मुझे डर है कि हम इसके बारे में ज्यादा कुछ नहीं कर सकते हैं।

  • जब display_errors है पर यह 200 हमेशा वापस आ जाएगी:

तो सवाल का जवाब है।

  • जब display_errors बंद है तो यह 500 वापस आ जाएगा।
  • संबंधित मुद्दे