2011-05-06 10 views
12

अरे मुझे पता है कि इस विषय के बारे में कुछ पोस्ट हैं और मैंने उन्हें सब कुछ खराब कर दिया है!php display_errors सक्षम नहीं हो सकता

मैं कोई बात नहीं मैं क्या कर display_errors php में सेटिंग सक्षम न नहीं कर सकते हैं !!!

इम php 5.3 apache2 चल के साथ स्थापित के साथ आभासी बॉक्स का उपयोग। मैंने प्रदर्शन त्रुटियों को काम करने के बारे में सोचने की हर चीज की कोशिश की है लेकिन कुछ भी काम नहीं करता है।

मैं मैं भी यह सीधे php.ini फ़ाइल

display_errors = 1 

में सक्षम किया है, मेरी .htaccess फ़ाइल में पर php_flag display_errors की स्थापना की है और यह भी

display_errors = On 

की कोशिश की मैं के लिए डिफ़ॉल्ट उपयोग कर रहा हूँ अपाचे साइट्स-सक्षम ऐसा कुछ है जो मुझे काम करने के लिए यहां करने की ज़रूरत है ?? मुझे मैक का उपयोग करके अपने मैक पर php चलाने में कभी समस्या नहीं आई है।

कोई सुझाव बहुत सराहना की इस किया जाएगा मुझे पागल गाड़ी चला रहा है!

उत्तर

59

तुम भी आम तौर पर अपने PHP स्क्रिप्ट में सक्षम कर सकते हैं:

ini_set("display_errors", 1); 
ini_set("track_errors", 1); 
ini_set("html_errors", 1); 
error_reporting(E_ALL); 

अगर वह मदद नहीं करता है, तो पहले एक त्वरित समाधान का प्रयास करें:

set_error_handler("var_dump"); 

मूल को दोहराने के लिए इस्तेमाल किया जा सकता है व्यवहार, अगर यह किसी अन्य परिस्थिति से दबाया जाता है।

ध्यान रखें, यह केवल रनटाइम त्रुटियों को सक्षम करने के लिए काम करता है। आप पार्स त्रुटि संदेह है, तो आप निश्चित रूप से php.ini/.htaccess/.user.ini में त्रुटि प्रदर्शन सक्षम करना होगा। - अन्यथा ऊपर दिए गए निर्देशों के साथ एक रैपर test.php स्क्रिप्ट बनाएं, फिर include() दोषपूर्ण स्क्रिप्ट बनाएं।

+5

ओह, त्रुटि हैंडलर के रूप में 'var_dump' सेट करना _great_ विचार है। धन्यवाद! –

+0

ini_set ("display_errors", 1); इसे मेरे index.php में सेट करना चालू हो गया है, जो अजीब है क्योंकि यह पहली चीज थी जिसकी मैंने कोशिश की थी जो पहले काम नहीं करता था। यह अजीब बात है कि कुछ भी काम करने में कामयाब नहीं रहा, जवाब के लिए धन्यवाद हालांकि ऐसा लगता है कि समस्या हल हो गई है! –

+0

अभी भी कोई भाग्य नहीं है! :( – minhajul

2

error_reporting = E_ALL आज़माएं। साथ ही, क्या आप वाकई सही php.ini संपादित कर रहे हैं?

+0

आईएम संपादन/etc/php5/apache php.ini मेरा ज्ञान है कि एकमात्र आईएनआई फ़ाइल सही है? –

+1

मुझे लगता है कि आप 'error_reporting' विकल्प' का मतलब है; 'display_errors' केवल '1' या' 0' लेता है। –

+0

माइक: आमतौर पर हबियन या उबंटू सर्वर पर हाँ। – tamasd

2

मैं आमतौर पर (PHP स्क्रिप्ट मैं डिबग करने की कोशिश में) का उपयोग करें:

ini_set('display_errors',1); 
ini_set('display_startup_errors',1); 
error_reporting(E_ALL); 

कि आम तौर पर काम करता है, लेकिन यह पर्याप्त नहीं कर सकता है यदि आप एक बुरा बेजोड़ कोष्ठक है। तो अगर यह अभी भी काम नहीं करता है, तो यह कुछ PHP छोटी गाड़ी कोड पर निर्भर हो सकता है।

यह भी हो सकता है कि आप गलत php.ini संपादित कर रहे हैं: phpinfo() का उपयोग करें और "लोड की गई कॉन्फ़िगरेशन फ़ाइल" और "अतिरिक्त .ini फ़ाइलों को पार्स किए गए" के तहत भागों की खोज करें।

पीएस : display_errors = 1 और display_errors = On php.ini में समकक्ष हैं।

2

प्रयास करें:

grep "display_errors" /etc/php5/apache2/php.ini 

बस इसे कितने समय दिखाई देता है की जाँच करने के।

+0

धन्यवाद @ रोमन पेटिट। यह हमेशा एक अच्छा विचार है। दूसरी प्रविष्टि पहले प्रविष्टियों को ओवरराइट करती है, अगर कई प्रविष्टियां हैं। – carbontax

7

प्रति display_errors:

हालांकि display_errors (ini_set() के साथ) क्रम पर सेट किया जा सकता है, यह कोई असर करता है, तो स्क्रिप्ट घातक त्रुटियों है नहीं होगा। ऐसा इसलिए है क्योंकि वांछित रनटाइम कार्रवाई निष्पादित नहीं होती है।

इसलिए यदि आप समस्या नहीं प्रदर्शित त्रुटियों के साथ काम कर रहे हैं और आप अपनी स्क्रिप्ट में सिंटैक्स त्रुटि हो सकता है, ini_set द्वारा प्रदर्शित त्रुटियों की स्थापना में मदद नहीं करेगा, यह php.ini

sudo sed -i 's/display_errors = Off/display_errors = On/' /etc/php5/apache2/php.ini 
+1

बस अंतिम 'चरित्र हटा दिया गया है) और यह निश्चित रूप से मदद करता है। धन्यवाद :) – Waqas

4

वास्तव में परिवर्तन की आवश्यकता है , php.ini में दो जगह हैं जहां आप display_errors लाइन का सामना कर सकते हैं। गलती से आप पहले को सक्षम कर सकते हैं, लेकिन यह पिछले display_errors = Off (इस तरह की भ्रामक चीज मेरे साथ हुई) से अधिक हो गई है।

;;;;;;;;;;;;;;;;;;; 
; Quick Reference ; 
;;;;;;;;;;;;;;;;;;; 
; The following are all the settings which are different in either the production 
; or development versions of the INIs with respect to PHP's default behavior. 
; Please see the actual settings later in the document for more details as to why 
; we recommend these changes in PHP's behavior. 

; display_errors 
; Default Value: On 
; Development Value: On 
; Production Value: Off 

और फ़ाइल में बहुत कम display_errors के अंतिम घटना:

; This directive controls whether or not and where PHP will output errors, 
; notices and warnings too. Error output is very useful during development, but 
; it could be very dangerous in production environments. Depending on the code 
; which is triggering the error, sensitive information could potentially leak 
; out of your application such as database usernames and passwords or worse. 
; It's recommended that errors be logged on production servers rather than 
; having the errors sent to STDOUT. 
; Possible Values: 
; Off = Do not display any errors 
; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) 
; On or stdout = Display errors to STDOUT 
; Default Value: On 
; Development Value: On 
; Production Value: Off 
; http://php.net/display-errors 
display_errors = Off 

display_errors की पिछले घटना परिवर्तित करना सुनिश्चित करें

ब्लॉक कि फ़ाइल में पहली चला जाता है । बस इसे display_errors = On पर सेट करें, अपाचे को पुनरारंभ करें और आपको वह चाहिए जो आपको चाहिए।

0

मेरे मामले में, मुझे क्या करना था

set_error_handler(NULL); 
<the code to debug on screen> 
restore_error_handler(); 

मैं एक कस्टम त्रुटि हैंडलर है, जो पूरी तरह से नजरअंदाज कर डिफ़ॉल्ट पीएचपी त्रुटि हैंडलर परिभाषित किया था। फिर भी, मैं अपनी कस्टम त्रुटि त्रुटि हैंडलर को स्थायी रूप से हटाना नहीं चाहता था। इसलिए, मैंने error_handler को इसके डिफ़ॉल्ट मान पर रीसेट करने के लिए set_error_handler(NULL); का उपयोग किया। मैंने अपना मूल कस्टम error_handler वापस पाने के लिए restore_error_handler(); का उपयोग किया।

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