मैं phpStorm, xdebug और nginx + php-fpm के साथ दूरस्थ डीबग का उपयोग करता हूं। GET
पैरामीटर में XDEBUG_SESSION_START=my_ide_key
पास करते समय Nginx 502 त्रुटि कोड (खराब गेटवे) के साथ repsond। उसी समय आईडीई में मेरा कोड ब्रेकपॉइंट ठीक काम करता है। जब मैं XDEBUG_SESSION_START
पैरामीटर nginx पास नहीं करता है तो अच्छी तरह से स्वरूपित HTML और कोड 200 के साथ प्रतिक्रिया देता है। लेकिन इस पैरामीटर के बिना स्पष्ट यह कोई डिबगिंग नहीं है।Xdebug कुकी XDEBUG_SESSION सेट कई बार
nginx त्रुटि लॉग में मैं अपस्ट्रीम से प्राप्त बड़े हेडर के बारे में अधिसूचनाएं देखता हूं।
Set-Cookie: XDEBUG_SESSION=666; expires=Mon, 16-Sep-2013 16:07:28 GMT; path=/
मैं जब इस हेडर पर प्रदर्शित होने वाले खोजने की कोशिश: मैं php-एफ पी एम और nginx और सिर्फ एक अलग बात है के बीच संचार डंप करने की कोशिश एक Set-Cookie
हैडर है। और मैंने पाया कि मेरी स्मार्ट प्लगइन Smarty_Internal_Template
विध्वंसक (मेरी स्टार्टअप स्क्रिप्ट की अंतिम कोड लाइन के बाद) अगर मैं headers_list()
पर कॉल करता हूं तो मुझे सेट-कुकी हेडर (बराबर विनाशक कॉल और सेट-कुकी हेडर राशि) की बढ़ती मात्रा दिखाई देती है। मुझे यकीन है कि मेरे कोड में कोई भी स्पष्ट header('Set-Cookie: XDEBUG_SESSION=...')
कॉल नहीं है। मैं xdebug संस्करण को अपग्रेड और डाउनग्रेड करने का प्रयास करता हूं लेकिन अभी भी वही व्यवहार है। पर कोड Smarty_Internal_Template
पर मेरी समस्या हल करती है लेकिन वह बदसूरत हैक है!
इस अजीब स्थिति के बारे में कोई विचार?
कुछ अतिरिक्त जानकारी: ऐसा लगता है कि प्रत्येक सेट शटडाउन फ़ंक्शन के लिए 'सेट-कुकी' हेडर को कॉल किया जाता है (जब से मैंने अपने शटडाउन फ़ंक्शंस के निष्पादन के माध्यम से कदम उठाने पर देखा)। मेरे मामले में Smarty का उपयोग नहीं किया जा रहा है। ऐसा लगता है कि यह सिर्फ एक php-shutdown-function-in-normal चीज़ है। – jdunk
एक और विषमता जो संबंधित हो सकती है या नहीं भी हो सकती है: 'headers_list()' मुझे यह भी दिखाता है कि * XDEBUG_SESSION के लिए * * * सेट-कुकी 'हेडर पहले से ही मेरे PHP कोड के लाइन 1 द्वारा सेट किए गए हैं। – jdunk