2012-04-06 6 views
11

Xdebug लोड किया गया है, लेकिन ज़ेंड एक्सटेंशन के रूप में लोड नहीं किया गया है। इसका क्या मतलब है? इस समस्या को कैसे हल करें?"XDEBUG ज़ेंड एक्सटेंशन के रूप में लोड नहीं किया गया" चेतावनी का अर्थ क्या है?

+0

आपकी कॉन्फ़िगरेशन क्या है? आपके ** php.ini ** के अंदर क्या है? ('Zend_extension_debug = *')। अधिक जानकारी की सराहना की जाएगी। – Liyali

+0

आप कैसे जानते हैं कि यह ज़ेंड एक्सटेंशन के रूप में लोड नहीं है? तुमने ऐसा कहां पढ़ा? क्या आप एक स्क्रीनशॉट प्रदान कर सकते हैं? – hakre

उत्तर

15

जोड़ें। यह आपके सामान्य php.ini में हो सकता है, या xdebug.ini नामक फ़ाइल में हो सकता है कि कुछ वितरण जोड़ना पसंद करते हैं। किसी भी मामले में, Xdebug को कुछ विशेषताओं जैसे एकल चरण डीबगिंग के लिए ज़ेंड एक्सटेंशन के रूप में लोड करने की आवश्यकता है। चूंकि Xdebug एक सामान्य विस्तार के रूप में काम करने के लिए नहीं है, यह भी क्रैश और जला सकता है।

Xdebug को ज़ेंड एक्सटेंशन के रूप में लोड करने के लिए वाक्यविन्यास PHP संस्करण और निर्माण पर निर्भर करता है। मैं आपको सही लाइनों के साथ प्रदान करने के लिए http://xdebug.org/wizard.php का उपयोग करने का सुझाव दूंगा।

+3

"किसी भी मामले में, Xdebug को ज़ेंड एक्सटेंशन के रूप में लोड करने की आवश्यकता है" - क्या आप समझा सकते हैं? जब मैं पीईसीएल के माध्यम से xdebug स्थापित करता हूं तो मुझे अपने php.ini में "एक्सटेंशन = xdebug.so" जोड़ने के लिए कहा जाता है और एक phpinfo() xdebug कैसे स्थापित और काम करने के बारे में सभी प्रकार की भलाई की रिपोर्ट करता है, लेकिन यह मुझे याद दिलाता है कि यह " एक ज़ेंड एक्सटेंशन के रूप में लोड नहीं किया गया "बिना किसी स्पष्टीकरण के मुझे क्यों परवाह है। –

+3

कम से कम विंडोज़ में, xdebug विज़ार्ड एक छोटी गलती करता है: यह 'zend_extension = C: \ Program Files (x86) \ PHP \ v5.3 \ ext \ php_xdebug-2.2.1-5.3-vc9-nts जैसे कुछ जोड़ने का सुझाव देता है। dll'। यह वास्तव में काम करने के लिए 'zend_extension =" सी: \ प्रोग्राम फ़ाइलें (x86) \ PHP \ v5.3 \ ext \ php_xdebug-2.2.1-5.3-vc9-nts.dll "होना चाहिए। – texnic

+0

@texnic धन्यवाद! विज़ार्ड ने php.ini में "zend_extension = ext \" जोड़ने के लिए कहा। यह एक्सटेंशन पथ के हिस्से के रूप में xdebug.dll को जोड़ने के लिए कहा जाना चाहिए, उदाहरण के लिए: "zend_extension = ext \ php_xdebug-2.2.2.dll"। मैंने इसे समझने की कोशिश में 30 मिनट बर्बाद कर दिया। – b01

4

सुनिश्चित करें कि यह zend_extension के रूप में सही ढंग से लोड करने के लिए कॉन्फ़िगर किया गया है। php.ini अंदर इस त्रुटि का अर्थ है कि आप Xdebug लोड करने के लिए "विस्तार =" पुराना इस लाइन

zend_extension="/usr/local/php/modules/xdebug.so" 
+0

मेरी सेंटोस 6 स्थापना में, यह है: 'zend_extension =/usr/local/lib/php/एक्सटेंशन/no-debug-non-zts-20121212/xdebug.so' (इसके अलावा, मेरे पास एक स्थानीय php.ini है वेब रूट जो डिफ़ॉल्ट php.ini पर सवारी करता है।ऐसा लगता है कि अगर मैं इसे उस वेब पथ के अंदर काम करना चाहता हूं तो मुझे निर्देश जोड़ना होगा।) –

0

अन्य ने पहले ही समझाया है कि त्रुटि यह है क्योंकि Xdebug को ज़ेंड एक्सटेंशन के बजाय नियमित PHP मॉड्यूल के रूप में लोड किया जा रहा है। आप wizard का उपयोग कर सकते हैं कि स्टारिक्स ने दिखाए गए डेरिक से लाइन को मैन्युअल रूप से दर्ज किया है या मैन्युअल रूप से दर्ज किया है।

हालांकि, एक समस्या है जिसमें आप भाग सकते हैं। extensions_dirphp.ini में निर्देश वर्तमान में केवल PHP मॉड्यूल, not to Zend extensions पर लागू होता है। इसलिए, अगर आप इस तरह एक आम विन्यास का उपयोग नहीं कर सकते हैं:

[PHP] 
extension_dir = .\ext 
extension  = php_memcache.dll 
… 
[zend] 
zend_extension = php_xdebug-2.2.3-5.3-vc9-nts.dll 

पीएचपी सही ढंग से ext उप-निर्देशिका से php_memcache.dll लोड करते हैं, यह त्रुटि Failed loading php_xdebug-2.2.3-5.3-vc9-nts.dll नहीं लोड php_xdebug-2.2.3-5.3-vc9-nts.dll और फेंक देंगे।

zend_extension = C:\foobar\PHP\ext\php_xdebug-2.2.3-5.3-vc9-nts.dll 

या इस तरह के एक रिश्तेदार पथ:

इसे ठीक करने के लिए आपको या तो जैसे एक पूरी तरह से योग्य/निरपेक्ष पथ का उपयोग करने की आवश्यकता होगी

zend_extension = ext\php_xdebug-2.2.3-5.3-vc9-nts.dll 
zend_extension = ..\phpexts\php_xdebug-2.2.3-5.3-vc9-nts.dll 
zend_extension = \dev\phpexts\php_xdebug-2.2.3-5.3-vc9-nts.dll 

(जादूगर होगा वापसी zend_extension=.\ext\php_xdebug-2.2.3-5.3-vc9-nts.dll जो निर्देशिका लेकिन यह भी एक ज़रूरत से ज़्यादा .\)

2

शामिल क्या आपमें zend*nts*.dll सक्रिय करना चाहते हैं दोहरे उद्धरण चिह्नों अपने dll फ़ाइल

उम्मीद में मदद करता है कि करने के लिए: विंडोज सर्वर पर ८८६०१२३२१० फ़ाइल, आप के बजाय zend_extension

उदाहरण zend_extension_ts निर्देश xdebug लोड करने के लिए उपयोग करना चाहिए:

[XDeug] 
zend_extension_ts="DRIVE:/PATH_TO_XDEBUG/php_xdebug.dll" 
xdebug.show_local_vars=1 
xdebug.default_enable=On 

नोट कोई :)

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