2013-01-05 23 views
5

की बजाय PHP त्रुटि त्रुटियों को प्रतिबिंबित करना चाहता हूं। मैंने वर्तमान में अपना कोडिनेटर रूट index.php का environment वैरिएबल development पर सेट किया है।मैं 500 आंतरिक त्रुटि

और मैंने छोटे यूआरएल मोड को भी सक्षम नहीं किया है।

मैं हर रात और दिन /var/log/apache2/error.log जांचना नहीं चाहता!

मेरी PHP त्रुटियों को वापस पृष्ठ पर चाहते हैं। 500 आंतरिक त्रुटि वास्तव में * हार्ड * एएस विधि है जो त्रुटि दिखाने के लिए उपयोग की जा सकती है।

ध्यान दें कि हम डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ उबंटू 12.04 एलटीएस सर्वर पर काम कर रहे हैं।

+0

शायद यह कोडनिर्देशक नहीं है, क्या आपने 'display_errors' के लिए 'php.ini' की जांच की है? –

उत्तर

13

जैसा कि टिप्पणी में उल्लिखित है, मुझे संदेह है कि यह कोडइग्निटर का मुद्दा है। यह अधिक संभावना है कि आपके पास display_errors आपके php.ini में बंद हो।

अगर मुझे सही याद है, तो सीआई के index.php में डिफ़ॉल्ट व्यवहार को बदलने के लिए ini_set('error_reporting', ..); पर कॉल शामिल है, ताकि आप हमेशा पहले वहां देख सकें और देखें कि क्या हो रहा है।

/* 
|--------------------------------------------------------------- 
| PHP ERROR REPORTING LEVEL 
|--------------------------------------------------------------- 
| 
| By default CI runs with error reporting set to ALL. For security 
| reasons you are encouraged to change this when your site goes live. 
| For more info visit: http://www.php.net/error_reporting 
| 
*/ 
    error_reporting(E_ALL); 

आप बस वहाँ ini_set('display_errors', 1); तहत जोड़ते हैं, तो यह सिर्फ ठीक काम कर रहा शुरू कर देना चाहिए:

बस एक नज़र था, यहाँ डिफ़ॉल्ट है। जाहिर है सबसे अच्छा शर्त अपने परिवेश के लिए एक स्विच जोड़ने के लिए इन चर सेट करने के लिए हो सकता है, कारण है कि यह उस तरह पहले से ही नहीं है, लेकिन यहां एक उदाहरण दिया मैं सुनिश्चित नहीं हूं:

if (defined('ENVIRONMENT')) 
{ 
    switch (ENVIRONMENT) 
    { 
     case 'development': 
      error_reporting(E_ALL); 
      ini_set('display_errors', 1); 
      break; 
     case 'production': 
      error_reporting(0); 
      ini_set('display_errors', 0); 
      break; 
    } 
} 
+0

उत्कृष्ट जवाब! – Will

3

बस अपने सूचकांक में निम्नलिखित जोड़ें। php, विकास के वातावरण के मामले में:

case 'development': 
error_reporting(E_ALL); 
ini_set('display_errors', 'On'); 

संपादित करें: के रूप में रूडी Visser ने कहा, आप इसे अपने php.ini को बदलने को ठीक कर सकता है। मैं इसे यहां ठीक करना पसंद करता हूं, इसलिए जब भी मैं प्रोजेक्ट डाउनलोड करता हूं (मेरा लैपटॉप, मेरा कार्यालय पीसी या कंप्यूटर जो आपातकालीन स्थिति में उधार लेता है, मुझे php.ini कॉन्फ़िगरेशन को बदलने की आवश्यकता नहीं है)

0

मेरे पास समान था समस्या कोडिनेटर से मिली एकमात्र चीज केवल 500 आंतरिक त्रुटि थी। (मेरी पुरानी परियोजनाएं और एक क्लीन इंस्टॉल समान था) लेकिन दिलचस्प हिस्सा यह है कि मेरी गैर सीआई परियोजनाएं अभी भी काम करती हैं जिनमें ज्यादातर PHP शामिल हैं।

टिप

ini_set('display_errors', 'On'/,1) 

किसी कारण मैं CodeIgniter कोर फ़ाइलों को पढ़ने के लिए अधिकार नहीं था के लिए मेरी समस्या हल के साथ त्रुटि को लिखने के लिए।

फ़ाइलों को 'आर' जोड़ना समस्या को हल करता है।

रूडी Visser
CarlosIPe
मैं तुम दोनों समाधान के लिए धन्यवाद।