2014-04-28 7 views
6

मुझे पता है कि यह एक बड़ा नहीं है ... और मेरी साइट लाइव होने पर डेवलपर त्रुटि पृष्ठों को प्रदर्शित नहीं करना चाहिए, यह सुनिश्चित करने के लिए मैं क्या कर सकता हूं कि देव पर्यावरण त्रुटि संदेश उत्पादन में दिखाई नहीं दे रहे हैं ?देव अपवाद उत्पादन वातावरण में दिखाए जाते हैं

enter image description here

क्यों इन दिखाई दे रहे हैं? मैंने सोचा कि यह उत्पादन मोड में डिफ़ॉल्ट रूप से बंद कर दिया गया था? क्या मुझे एक सेटिंग याद आ गई?

नोट: यह एक साझा सर्वर पर है। और app.php का उपयोग नहीं कर रहा हूँ app_dev.php।

जब मैं उत्पादन मोड के पास जाओ स्थानीय स्तर पर इसे ठीक तरह से सही त्रुटि संदेश प्रदर्शित करता है (नीचे):

ऊप्स! एक त्रुटि हुई सर्वर ने "404 नहीं मिला" लौटाया। कुछ टूटा हुआ है। कृपया हमें [ईमेल] पर ईमेल करें और हमें बताएं कि यह त्रुटि कब हुई थी। हम इसे जल्द से जल्द ठीक कर देंगे। असुविधा के लिए खेद है।

फिर भी लाइव साइट पर यह Symfony2 dev पर्यावरण त्रुटि संदेश दिखा रहा है?

मैं एप्लिकेशन/संसाधन/TwigBundle/विचारों/अपवाद में एक error404.html.twig फ़ाइल बनाने के द्वारा एक कस्टम त्रुटि संदेश बनाने के लिए कोशिश की है लेकिन यह अभी भी इस फ़ाइल लोड नहीं करता है और न केवल डेवलपर त्रुटि प्रदर्शित करता है संदेश।

+0

क्या आप वास्तव में सिम्फनी के 'देव' पर्यावरण का उपयोग कर रहे हैं? ध्यान दें कि 'वेब' फ़ोल्डर, 'app.php' और' app_dev.php' में दो फ्रंट नियंत्रक हैं। कौन सा एक आप प्रयोग कर रहें है? –

+0

app.php का उपयोग करना। यह मुझे app_dev.php का उपयोग करने की अनुमति नहीं देगा, जब मैं कोशिश करता हूं कि मुझे यह त्रुटि संदेश मिलता है "आपको इस फ़ाइल तक पहुंचने की अनुमति नहीं है। अधिक जानकारी के लिए app_dev.php देखें।" – dizzyd

+0

app.php में - $ कर्नेल = नया ऐप कर्नेल ('प्रोड', सत्य); – dizzyd

उत्तर

11

आपके फ्रंटेंड नियंत्रक (web/app.php सिम्फनी मानक संस्करण में) में, AppKernel का एक उदाहरण बनाया गया है। AppKernelconstructor from Symfony's Kernel विरासत है, जो दो तर्क की आवश्यकता है:

/** 
* Constructor. 
* 
* @param string $environment The environment 
* @param bool $debug  Whether to enable debugging or not 
*/ 
public function __construct($environment, $debug) 

$environment पैरामीटर केवल निर्धारित करता है जो विन्यास प्रयोग किया जाता है (config_dev.yml, config_prod.yml, आदि)। $debug पैरामीटर वह है जो डिबगिंग को सक्षम या अक्षम करता है (और इसलिए गीले अपवाद दिखाए जाते हैं या नहीं)।

तो app.php में

, परिवर्तन:

$kernel = new AppKernel('prod', true); 

को
$kernel = new AppKernel('prod', false); 

यह उपयोगकर्ता के अनुकूल त्रुटि पृष्ठों के साथ विस्तृत अपवाद पृष्ठों की जगह चाहिए।

+0

यह काम किया! मुझे लगता है कि $ डीबग कहां पर सही है? मैं 'प्रोड', सत्य 'को चालू करने के लिए उल्लिखित एक गाइड का पालन कर रहा था। क्या यह app_dev.php में है जहां 'dev', true'? – dizzyd

+0

आपका क्या मतलब है? जब आप एक नया उदाहरण बनाते हैं तो आप '$ डीबग 'सत्य पर सेट करते हैं (' $ kernel = new App कर्नेल (' प्रोड ', सत्य);')। कन्स्ट्रक्टर को लाइन विक्रेता पर 'विक्रेता/सिम्फनी/सिम्फनी/src/Symfony/घटक/Http कर्नेल/कर्नेल.एफपी' में परिभाषित किया गया है। –

+0

' कर्नेल = नया ऐप कर्नेल ('प्रोड', सत्य नहीं है; 'मतलब है' इसे उत्पादन मोड में सेट कर रहे हैं?यह वह जगह है जहां मैं भ्रमित हो रहा हूं। मैं यहां इस गाइड का पालन कर रहा था: http://www.livelywebdesign.com/blog/2013/05/symfony-2-plication-on-shared-hosting/#comment-52147 – dizzyd

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