2012-02-17 16 views
23

पृष्ठभूमिचरण-दर-चरण: ग्राहक आईडीई

PHP और Komodo आईडीई, और ग्रहण पीडीटी साथ Xdebug का उपयोग करने के लिए Xdebug समस्या निवारण कनेक्शन कैसे करना है।

Xdebug सर्वर पर स्थापित है और ठीक से काम कर रहा है। यह पुष्टि की गई है क्योंकि सर्वर पर PHP फ़ाइलों में डाले जाने पर Xdebug कोड कमांड अपेक्षित कार्य करता है।

समस्या

ग्राहक कार्य केंद्र से कनेक्ट नहीं कर रहा है, और यह क्यों निर्धारित करना कठिन है क्योंकि यह एकाधिक IDEs के साथ विफल रहता है।

प्रश्न

यह एक चरण-दर-चरण चेकलिस्ट मामले का निवारण करने के लिए अच्छा होगा जहाँ आप जानते हैं Xdebug स्थापित किया है और सर्वर पर काम कर रहा है, लेकिन ग्राहक कनेक्ट नहीं करता है।

कोई भी समस्या निवारण चेकलिस्ट बनाने के लिए इसमें कोई भी मदद कर सकता है?

विशेष रूप से, क्या नेटवर्क ट्रैफिक क्लाइंट तक पहुंचने के लिए कोई बेयर-हड्डियों का तरीका है, और आईडीई डेटा को देखने की अपेक्षा करने के तरीके में सही ढंग से स्वरूपित है?

  • वेब होस्ट और में SSH ग्राहक तक पहुँचने की कोशिश:

    • बिल्कुल पहुंच ग्राहक होस्ट कर सकते हैं? (पिंग-सी 5 xxx.xxx.xxx.xxx)
    • पहुंच पोर्ट 9000 होस्ट कर सकते हैं? (nmap -p 9000 xxx.xxx.xxx.xxx)
    • यदि उपर्युक्त दो सफल होते हैं, तो आउटपुट क्या होना चाहिए?
    • यदि उपर्युक्त दो विफल हो जाते हैं, तो अगला समस्या निवारण चरण क्या है?
  • ग्राहक पर सॉफ्टवेयर आधारित फ़ायरवॉल की सेटिंग की जांच करें

  • linux मेजबान पर iptables की सेटिंग की जांच करें
  • हार्डवेयर फ़ायरवॉल बी/टी ग्राहक और मेजबान

लक्ष्य

सत्यापित करें

लक्ष्य कुछ समाधान ढूंढना है जहां क्लाइंट मशीन पर व्यक्ति कम से कम पुष्टि कर सकता है कि कुछ यह निर्धारित करने के बिना क्लाइंट तक पहुंच रहा है कि आईडीई समस्या है या नहीं, क्योंकि आईडीई जटिलता का एक और स्तर है जो समस्याएं पेश कर सकता है।

+2

यह कुछ ऐसा है जो मैं निश्चित रूप से Xdebug दस्तावेज़ में शामिल करना चाहता हूं। मुझे लगता है कि यह बहुत से लोगों को इस पर सहयोग करने के लिए सबसे अच्छा काम करेगा, इसलिए मैंने xdebug.org github repository में एक फाइल बनाई है (https://github.com/derickr/xdebug.org/blob/master/html/docs टिप्स एकत्र करने के लिए /tutorials/troubleshooting.rest)। – Derick

+0

आपने बताया कि xdebug' स्थापित है क्योंकि आदेश काम करते हैं। मेरा हल यह है कि xdebug केवल php-cli के लिए सक्षम है और apache के लिए php नहीं है ... क्या आप यह पुष्टि कर सकते हैं कि यह मामला है? – Khez

+0

संबंधित प्रश्न: http://stackoverflow.com/questions/18540463/how-to-enable-xdebug-with-nginx http://stackoverflow.com/questions/11563280/php-remote-debugging-xdebug- कैंट-कनेक्ट-टू-जेटब्रेन-पीएचपी-तूफान-क्लाइंट http://stackoverflow.com/questions/1946643/why-does-xdebug-not-establish-connection-with-netbeans – Kzqai

उत्तर

13

यह कुछ है जो मैं निश्चित रूप से Xdebug दस्तावेज़ में शामिल करना चाहता हूं। मुझे लगता है कि यह बहुत से लोगों को इस पर सहयोग करने के लिए सबसे अच्छा काम करेगा, इसलिए मैंने युक्तियों को इकट्ठा करने के लिए xdebug.org github repository (https://github.com/derickr/xdebug.org/blob/master/html/docs/tutorials/troubleshooting.rest) में एक फ़ाइल बनाई है। कांटा और विस्तार करने के लिए स्वतंत्र महसूस करें!

एक्सडेबग पक्ष पर, आगामी संस्करण (2.2) में यह पहले से ही अपने xdebug में डंप हो गया है।remote_log फ़ाइल को कुछ अतिरिक्त डायग्नोस्टिक्स जैसे कि यह कनेक्ट करने का प्रयास किया गया था और क्या कनेक्शन स्वीकार या अस्वीकार कर दिया गया था।

10

आप debugclient उपयोगिता का उपयोग निर्धारित करने के लिए कर सकते हैं अगर ग्राहक Xdebug कनेक्शन प्राप्त कर सकते हैं के रूप में आप Xdebug documentation में पढ़ सकते हैं:

इससे पहले कि आप अपनी स्क्रिप्ट शुरू आप अपने ग्राहक को बताने के लिए की आवश्यकता होगी यह कि डीबग कनेक्शन प्राप्त कर सकते हैं, कृपया यह सुनिश्चित करने के लिए विशिष्ट ग्राहक को के दस्तावेज़ देखें। बंडल क्लाइंट का उपयोग करने के लिए बस इसे संकलित करने और इंस्टॉल करने के बाद इसे शुरू करें। आप इसे "डीबग्लिएंट" चलाकर शुरू कर सकते हैं। यदि आप अपनी स्क्रिप्ट को डीबग करने के लिए जीडीबी कमांडेट का उपयोग करना चाहते हैं, तो सुनिश्चित करें कि आप Xdebug 1.3 के साथ बंडल किए गए डीबग्लिएंट का उपयोग करें क्योंकि Xdebug 2 के साथ बंडल वाला एक केवल डीबीजीपी कमांडसेट के साथ काम करता है। debugclient यह निम्नलिखित जानकारी दिखाएगा शुरू होता है और तो इंतजार कर रहा है जब तक एक कनेक्शन डिबग सर्वर द्वारा की जा रही है:

Xdebug Simple DBGp client (0.10.0) 
Copyright 2002-2007 by Derick Rethans. 
- libedit support: enabled 
Waiting for debug server to connect. 

एक कनेक्शन डिबग सर्वर के उत्पादन में किया जाता है के बाद दर्शाया गया है:

Connect 
<?xml version="1.0" encoding="iso-8859-1"?> 
<init xmlns="urn:debugger_protocol_v1" 
     xmlns:xdebug="http://xdebug.org/dbgp/xdebug" 
     fileuri="file:///home/httpd/www.xdebug.org/html/docs/index.php" 
     language="PHP" 
     protocol_version="1.0" 
     appid="13202" 
     idekey="derick"> 
    <engine version="2.0.0RC4-dev"><![CDATA[Xdebug]]></engine> 
    <author><![CDATA[Derick Rethans]]></author> 
    <url><![CDATA[http://xdebug.org]]></url> 
    <copyright><![CDATA[Copyright (c) 2002-2007 by Derick Rethans]]></copyright> 
</init> 
(cmd) 

आप Xdebug 2 आरंभीकरण प्रोटोकॉल here बारे में अधिक जानकारी पा सकते हैं।
एक और संदर्भ: Howto check xdebug installation
दुर्भाग्य से डीबग्लिएंट उपयोगिता केवल स्रोत रूप में प्रदान की जाती है, इसलिए आपको अपने द्वारा निष्पादन योग्य बनाना होगा; यह या तो लिनक्स पर किया जा सकता है (INSTALL देखें) और विंडोज़ (विजुअल स्टूडियो के साथ - debugclient.dsp देखें)।
एक्सएएमपीपी में xampp/php/debugclient.exe में एक संकलित संस्करण शामिल है।

http://wiki.netbeans.org/HowToConfigureXDebug

5

Netbeans एक बहुत ही गहन प्रलेखन भी शामिल किया गया है कि इस तरह की समस्याओं का निवारण करने के लिए कैसे है। यदि यह काम करता है, तो फ़ायरवॉल के माध्यम से जावा (टीएम) प्लेटफार्म एसई बाइनरी को अनुमति दें और फिर इसे फिर से सक्षम करें। यह ठीक काम करेगा!

आदेशों के लिए धन्यवाद, वे डिबगिंग पर बहुत उपयोगी थे।

5

विंडोज उपयोगकर्ताओं अपने फ़ायरवॉल को निष्क्रिय और फिर पुन: प्रयास: