WP_DEBUG सेट नहीं है, लेकिन मुझे अभी भी चेतावनी मिल रही है


14

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

मैंने php.ini में त्रुटि स्तर को बदलने की कोशिश की है, लेकिन ऐसा लगता है कि चेतावनी दिखाई देती है या नहीं इसका कोई असर नहीं पड़ता है, लेकिन वे विभिन्न सर्वरों पर अलग-अलग मात्रा में दिखाई देते हैं (अर्थात विकास पर कोई चेतावनी नहीं, मंचन पर एक चेतावनी, और उत्पादन पर कुछ और चेतावनी)।


क्या ये निश्चित रूप से चेतावनी, या घातक त्रुटियां हैं?
TheDeadMedic

मेरे पास एक ही मुद्दा था, यह चेतावनी के मामले में ग्रेविटीफार्म से चेतावनी थी - चेतावनी: "जारी रखना" लक्ष्यीकरण स्विच "ब्रेक" के बराबर है। क्या आप "2 जारी रखें" का उपयोग करने का मतलब है? in /plugins/gravityforms/common.php - नीचे दिया गया काम करने वाले का तर्क / उत्तर मुझे इस पहली कोशिश को ठीक करने के लिए कॉपी / पेस्ट करें, धन्यवाद।
ओजी सीन

जवाबों:


8

WP_DEBUG का PHP त्रुटि आउटपुट पर कोई प्रभाव नहीं है। Error_reporting सेटिंग के अलावा, अपनी php.ini फ़ाइल में display_errors = 0 सेट करें। यह विकास के लिए डिफ़ॉल्ट रूप से सक्षम है। लेकिन आप इसे प्रोडक्शन सर्वर पर बंद करना चाहेंगे।


Parphrase के लिए wp-load /php शामिल है: if (WP_DEBUG) error_reporting (EALL)। लेकिन ऐसा लगता है कि कई प्लगइन्स error_reporting और display_errors के साथ फ़िडलिंग कर रहे हैं जब वे शायद नहीं होना चाहिए।

1
आह - आप सही कह रहे हैं, मेरे php.ini में display_errors चालू था। मैंने अभी माना कि WP_DEBUG ने सभी त्रुटियों का ध्यान रखा। धन्यवाद।

23

बदलने के

define('WP_DEBUG', false);

इसके साथ:

ini_set('log_errors','On');

ini_set('display_errors','Off');

ini_set('error_reporting', E_ALL );

define('WP_DEBUG', false);

define('WP_DEBUG_LOG', true);

define('WP_DEBUG_DISPLAY', false);

4
कृपया अपने उत्तर में एक स्पष्टीकरण जोड़ें।
FUXIA

संभवतः स्क्रीन पर त्रुटियां बंद हैं, लेकिन आप उन्हें त्रुटि लॉग में अपने सर्वर में देख सकते हैं
user2060451

4

यह भी संभव है, कि यह रेखा पहले से ही झूठी है। उस स्थिति में, आपको निम्न कोड दिखाई देगा:

define('WP_DEBUG', false);

या तो मामले में, आपको इस कोड को निम्न कोड से बदलना होगा:

ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);

अपने परिवर्तनों को सहेजना और अपनी wp-config.php फ़ाइल को सर्वर पर अपलोड करना न भूलें।


1
धन्यवाद इसने मेरे लिए सामने के छोर पर चेतावनी छिपाने का काम किया। WP_DEBUG पहले से ही गलत पर सेट था।
ओजी सीन

1

वर्डप्रेस वातावरण के लिए, आमतौर पर उपयोग करने का कोई कारण नहीं है ini_setक्योंकि वर्डप्रेस कोर द्वारा प्रदान किए गए परिभाषित स्थिरांक पहले से ही प्राप्त कर रहे हैं। जिस तरह से PHP काम करता है वह यह है कि कुछ सेटिंग्स को आपके CMS (वर्डप्रेस), व्यक्तिगत स्क्रिप्ट के भीतर और यहां तक ​​कि प्रति-उपयोगकर्ता या प्रति-निर्देशिका आधार (वेब होस्ट और एजेंसियों की हताशा के लिए) पर भी ओवरराइड किया जा सकता है ।

वर्डप्रेस में ऑन-पेज प्रदर्शित करने से त्रुटियों को अक्षम करने के लिए, केवल वही सेटिंग जिसकी आपको वास्तव में आवश्यकता है:

define('WP_DEBUG', false);

... क्योंकि जब WP_DEBUGअक्षम होता है, तब उप-विकल्प निष्क्रिय होते हैं:

define('WP_DEBUG_DISPLAY', false);
define('WP_DEBUG_LOG', false);

ध्यान रखें कि भ्रमित WP_DEBUG_LOGकरने वाला विकल्प केवल debug.logनिर्देशिका के भीतर निर्माण को संदर्भित करता है wp-contentऔर अन्य लॉगिंग सेटिंग्स आदि को प्रभावित नहीं करता है।

फिर से, वर्डप्रेस की सेटिंग्स डिफ़ॉल्ट PHP सेटिंग्स को ओवरराइड कर सकती हैं, इसलिए आपकी पीएचपी सेटिंग्स आपकी wp-config.phpफ़ाइल में सही सेटिंग्स होने से ज्यादा मायने नहीं रखती हैं , जो अन्य WP घटकों से पहले लोड होती हैं।

उन्होंने कहा, उत्पादन में नीचे की तरह डिफ़ॉल्ट सेटिंग्स को लागू करना एक अच्छा विचार है:

error_reporting = E_ERROR | E_WARNING | E_PARSE
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /var/www/logs/error.log
log_errors_max_len = 1024
ignore_repeated_errors = On
ignore_repeated_source = Off
report_memleaks = On
xmlrpc_errors = 0
html_errors = Off

एक पूर्ण उदाहरण के लिए, Nginx और PHP-FPM के लिए अनुकूलित हमारी SlickStack php.ini फ़ाइल देखें ।

एक मामले में, अनुसंधान के घंटे के बाद, हम एक प्लगइन का एहसास (या विषय) पहले में स्थापित विभिन्न त्रुटि हैंडलिंग सेटिंग्स अधिभावी गया था php.iniऔर wp-config.php। इसे रोकने का एकमात्र तरीका वर्डप्रेस प्लगइन या थीम है जो आपकी PHP सेटिंग्स को "हैक" करने की कोशिश कर रहा है, या उन्हें इसे हटाने के लिए कह रहा है क्योंकि एक्सटेंशन के लिए आपके सीएमएस के डिबग विकल्पों को ओवरराइड करने के लिए बहुत बुरा अभ्यास है।

SlickStack में, हम एक बैश स्क्रिप्ट बनाने कि "झंडे" किसी भी ini_setऔर error_reportingमें PHP फ़ाइलों से लाइनों /themes/और /plugins/एक एमयू प्लगइन (PHP स्क्रिप्ट) है कि प्रदर्शित करता है WP व्यवस्थापक डैशबोर्ड में इस तरह के "हैक" की एक सूची का उपयोग कर ऐसे मामलों पर प्रकाश डाल कर निर्देशिका।


0

अपने (शीर्ष पर) सभी त्रुटि चेतावनियों / नोटिसों को अक्षम / दबाने की कोशिश करें wp-config.php। वैसे भी: त्रुटियाँ कुछ भी बुरा नहीं हैं। वे आपको अपना कोड ठीक करने का मौका देते हैं।


मुझे लगता है कि यह अन्य लोगों के प्लगइन्स में त्रुटि के कारण उत्पन्न हुआ था।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.