ServBay में Xdebug मॉड्यूल को कैसे सक्रिय और कॉन्फ़िगर करें
ServBay, एक शक्तिशाली लोकल वेब डिवेलपमेंट एनवायरनमेंट के रूप में, PHP डेवलपर्स के लिए पहले से ही Xdebug डिबग और प्रोफाइलिंग टूल को इंटीग्रेट करता है। Xdebug को सक्रिय करना PHP एप्लिकेशन के डिवेलपमेंट प्रॉसेस को काफी प्रभावी बनाता है, जिससे आप कोड डिबगिंग, परफॉर्मेंस एनालिसिस और कोड कवरेज जांच को बहुत आसान बना सकते हैं। इस लेख में समझाया गया है कि ServBay में Xdebug कैसे चालू और कॉन्फ़िगर करें, और इसे प्रमुख IDEs (जैसे PHPStorm और VS Code) में कैसे इंटीग्रेट करें।
Xdebug मॉड्यूल का अवलोकन
Xdebug एक फीचर-समृद्ध PHP एक्सटेंशन है जिसे PHP कोड के डिबग और एनालिसिस के लिए डिज़ाइन किया गया है। ServBay में Xdebug पहले से शामिल है, जिससे डेवलपर्स को मैन्युअल इंस्टॉलेशन या कंपाइलेशन की जटिलता नहीं झेलनी पड़ती—इसे सक्षम करना और सेटअप करना बहुत ही आसान है।
Xdebug के मुख्य फ़ीचर्स
- ब्रेकपॉयंट डिबगिंग: आप कोड की किसी भी लाइन पर ब्रेकपॉइंट सेट कर सकते हैं, जहां कोड रनिंग रुक जाएगी और आप वेरिएबल्स, कॉल स्टैक आदि जांच सकते हैं एवं कोड को लाइन बाय लाइन चला सकते हैं।
- स्टेपिंग डिबगिंग: एक-एक स्टेप में कोड चलाएं (Step Over, Step Into, Step Out) और आसानी से प्रोग्राम फ्लो ट्रैक करें।
- वेरिएबल वॉचिंग: डिबगिंग के दौरान लोकल और ग्लोबल वेरिएबल्स के वर्तमान मूल्य तुरंत देखें।
- स्टैक ट्रेसिंग: जब कोई एरर या एक्सेप्शन आता है, तो ये डिटेल्ड कॉल स्टैक इनफार्मेशन देता है, जिससे समस्या की जड़ का पता लगाने में मदद मिलती है।
- परफॉर्मेंस प्रोफाइलिंग: कोड के निष्पादन के बारे में डिटेल्ड रिव्यू/रिपोर्ट बनाता है, जिससे बॉटलनेक्स का पता चल सके।
- कोड कवरेज चेकिंग: कितनी कोड लाइन आपके टेस्ट स्क्रिप्ट्स द्वारा कवर की गईं—ये मापता है, जिससे टेस्टिंग एफिशिएंसी जांच सकते हैं।
ServBay में इनबिल्ट Xdebug वर्शन और पोर्ट मैपिंग
ServBay विभिन्न PHP वर्शन के साथ संबंधित Xdebug मॉड्यूल भी पहले से इंस्टॉल करता है। ध्यान दें कि हर PHP वर्शन की Xdebug सुनने (listen) वाली पोर्ट अलग होती है, और ये PHP वर्शन के अनुसार होती है, जिसे IDE डिबगर कॉन्फ़िगरेशन में सही सेट करना जरूरी है।
| PHP संस्करण | प्रीलोडेड Xdebug संस्करण | डिफ़ॉल्ट Xdebug लिसनिंग पोर्ट |
|---|---|---|
| PHP 5.6 | Xdebug 2.5.5 | 39056 |
| PHP 7.0 | Xdebug 2.5.5 | 39070 |
| PHP 7.1 | Xdebug 2.5.5 | 39071 |
| PHP 7.2 | Xdebug 3.1.6 | 39072 |
| PHP 7.3 | Xdebug 3.1.6 | 39073 |
| PHP 7.4 | Xdebug 3.1.6 | 39074 |
| PHP 8.0 | Xdebug 3.3.1 | 39080 |
| PHP 8.1 | Xdebug 3.4.0 | 39081 |
| PHP 8.2 | Xdebug 3.4.0 | 39082 |
| PHP 8.3 | Xdebug 3.4.0 | 39083 |
| PHP 8.4 | Xdebug 3.4.0 | 39084 |
| PHP 8.5 | Xdebug 3.4.0 | 39085 |
पोर्ट नियम
Xdebug का डिफ़ॉल्ट लिसन पोर्ट इस नियम पर आधारित है: 39000 + PHP उप-संस्करण नंबर। उदाहरण के लिए, PHP 8.3 का पोर्ट है 39000 + 83 = 39083 और PHP 7.4 का पोर्ट है 39000 + 74 = 39074। इस नियम को समझने से आप किसी भी PHP वर्शन के लिए सही Xdebug पोर्ट जल्दी पता कर सकते हैं।
Xdebug मॉड्यूल कैसे सक्रिय करें
ServBay के अंदर Xdebug को सक्रिय करना बेहद आसान है और इसके लिए GUI इस्तेमाल करने की सिफारिश है। चाहें तो मैन्युअली कॉन्फ़िगरेशन फ़ाइल एडिट करके भी कर सकते हैं।
ServBay GUI द्वारा Xdebug को सक्रिय करें
यह सबसे सरल और त्वरित तरीका है:
- ServBay एप्लिकेशन इंटरफ़ेस खोलें।
- बाएं साइडबार से
भाषाएँ(Languages) चुनें। PHPसेक्शन को एक्सपैंड करें और वहां से उस PHP वर्शन को चुनें जिसमें Xdebug एक्टिवेट करना है, जैसेPHP 8.3।- उस वर्शन के दाईं ओर के
एक्सटेंशनबटन पर क्लिक करें। - ओपन हुए एक्सटेंशन लिस्ट में
Xdebugमॉड्यूल ढूंढें। - Xdebug मॉड्यूल के बाईं तरफ स्विच दबाकर उसे ऑफ से ऑन करें।
- जरूरत अनुसार पैरामीटर एडिट करें।
- नीचे दिए गए
सेव करेंबटन पर क्लिक करें। - ServBay अपने आप PHP प्रोसेस को पुनः शुरू कर देगा और Xdebug मॉड्यूल लोड कर लेगा।
चित्र: एक्सटेंशन में Xdebug को एक्टिवेट करना
Xdebug लोड हुआ या नहीं—कैसे जांचें
सबसे भरोसेमंद तरीका है—PHP की कॉन्फ़िगरेशन phpinfo() के द्वारा देखें।
- ServBay साइट के रूट डायरेक्टरी (डिफ़ॉल्ट
/Applications/ServBay/www) में एक सिंपल PHP फाइल जैसेphpinfo.phpबनाएं। phpinfo.phpफ़ाइल में ये कोड डालें:php<?php // phpinfo कमांड: PHP कॉन्फ़िगरेशन और एक्सटेंशन्स चेक करें phpinfo(); ?>1
2
3
4- ब्राउज़र से इस फाइल को ओपन करें, जैसे
https://servbay.demo/phpinfo.php(यहांservbay.demoआपके ServBay में सेट किया डोमेन है)। - ओपन हुए phpinfo पेज में "Xdebug" सर्च करें। अगर Xdebug सक्सेसफुली लोड हुआ है, तो आपको Xdebug का एक अलग सेक्शन दिखाई देगा, जिसमें वर्शन और सेटिंग डिटेल्स होंगी।
चित्र: phpinfo आउटपुट में Xdebug जानकारी देखें
IDE में Xdebug के लिए कॉन्फ़िगरेशन
Xdebug को चालू करना पहला स्टेप है; IDE में ब्रेकपॉइंट डिबगिंग के लिए PHP इंटरप्रेटर, डिबगर और सर्वर मैपिंग भी कॉन्फ़िगर करनी होती है। यहां PHPStorm और Visual Studio Code (VS Code) को उदाहरण के तौर पर लिया गया है।
PHPStorm में Xdebug सेटअप करें
PHPStorm में Xdebug सपोर्ट बहुत स्मार्ट है:
PHPStorm सेटिंग्स खोलें: PHPStorm स्टार्ट करें, फिर मेन्यू से
File->Settings(Windows/Linux) याPHPStorm->Preferences(macOS) चुनें।PHP CLI इंटरप्रेटर सेटअप करें:
Languages & Frameworks->PHPपर जाएं।CLI Interpreterसेक्शन में दाईं ओर...बटन क्लिक करें।- ओपन हुई विंडो में
+आइकॉन से नया लोकल इंटरप्रेटर जोड़ें। - ServBay के अंदर सही PHP वर्शन के CLI का पथ सेट करें, जैसे
/Applications/ServBay/package/php/8.3/8.3.7/bin/php(वर्शन नंबर आपके इंस्टॉलेशन के अनुसार बदल सकते हैं)। - PHPStorm अपने आप वर्शन और एक्सटेंशन (Xdebug सहित) पहचान लेगा।
OKपर क्लिक कर इंटरप्रेटर कॉन्फ़िगरेशन सेव करें।
चित्र: PHPStorm में ServBay के PHP CLI इंटरप्रेटर की सेटिंग
Xdebug डिबग पैरामीटर सेट करें:
Languages & Frameworks->PHP->Debugपर जाएं।Xdebugसेक्शन में,Debug Portवही सेट करें जो ServBay में आपके PHP वर्शन के लिए सेट है (जैसे, PHP 8.3 के लिए39083)। यह पोर्ट औरxdebug.client_portदोनों की वैल्यू एक जैसी होनी चाहिए।Can accept external connectionsबॉक्स को भी चेक करें।Applyऔर फिरOKबटन दबाएं।
चित्र: PHPStorm में Xdebug Debug पोर्ट सेटिंग
PHP वेब सर्वर मैपिंग सेट करें:
Languages & Frameworks->PHP->Serversपर जाएं।- दाईं ओर
+से नया सर्वर सेटअप करें। - सर्वर नाम (उदाहरण:
ServBay Localhost) दें। Hostमें ServBay में सेट डोमेन डालें (जैसे,servbay.demo)।Portमें वेबसाइट का पोर्ट डालें, आमतौर पर443(HTTPS) या80(HTTP)।Debuggerके लिएXdebugसिलेक्ट करें।- नीचे
Use path mappingsको एक्टिवेट करें। - लोकल प्रोजेक्ट पाथ (जैसे
/Applications/ServBay/www/myproject) को सर्वर पाथ (/) से मैप करें। अगर प्रोजेक्ट/Applications/ServBay/www/myprojectपर है और URLhttps://servbay.demo/है, तो लोकल पाथ/Applications/ServBay/www/myprojectमैप होगा सर्वर पाथ/से।https://myproject.servbay.demo/के लिए भी यही अप्लाय होता है। पथ मैपिंग सही रखना बहुत ज़रूरी है। OKदबाएं।
चित्र: PHPStorm में सर्वर और पाथ मैपिंग
डिबगिंग शुरू करें:
- PHPStorm में अपना PHP प्रोजेक्ट खोलें।
- कोड लाइन नंबर के बाईं तरफ क्लिक करें, ब्रेकपॉइंट (रेड डॉट) सेट करें।
- PHPStorm टूलबार में
Start Listening for PHP Debug Connectionsबटन (छोटा कीड़ा आइकन) पर क्लिक करें—यह हरा हो जाएगा, मतलब लिसनिंग चालू। - अपने ब्राउजर में PHP ऐप्लिकेशन खोलें (जैसे,
https://servbay.demo/index.php)। - अगर सब सही है, तो Xdebug अपने आप PHPStorm से कनेक्ट हो जाएगा और ब्रेकपॉइंट पर कोड रुक जाएगा—अब डिबगिंग कर सकते हैं।
चित्र: PHPStorm में Xdebug लिसनिंग मोड चालू करना
Visual Studio Code (VS Code) में Xdebug सेटअप करें
VS Code एक और लोकप्रिय एडिटर है जिसमें एक्सटेंशन द्वारा Xdebug सपोर्ट बढ़िया मिलता है:
PHP Debug एक्सटेंशन इंस्टॉल करें:
- VS Code खोलें।
- एक्सटेंशन व्यू (Ctrl+Shift+X या Cmd+Shift+X) पर जाएं।
- "PHP Debug" सर्च करें और Felix Becker द्वारा एक्सटेंशन इंस्टॉल करें।
launch.jsonकॉन्फ़िगर करें:- अपने PHP प्रोजेक्ट फोल्डर को खुला रखें।
- रन और डिबग व्यू (Ctrl+Shift+D या Cmd+Shift+D) खोलें।
- टूलबार में गियर आइकन पर क्लिक करें, और "PHP" चुनें– यह
.vscodeफोल्डर मेंlaunch.jsonबनाएगा। launch.jsonएडिट करें—यहां "Listen for Xdebug" नामक कॉन्फ़िगरेशन होती है। इसमेंportवैल्यू वह सेट करें जो ServBay में PHP वर्शन के लिए है (जैसे, PHP 8.3 के लिए39083)।- पाथ मैपिंग सेट करें: Xdebug Debugging के लिए यह महत्वपूर्ण है।
launch.jsonमेंpathMappingsऐड करें—यह ServBay सर्वर के पाथ को आपके लोकल प्रोजेक्ट पाथ से जोड़ेगा।jsonअपने ServBay वेबसाइट सेटअप और प्रोजेक्ट फोल्डर के अनुसार{ "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 39083, // अपने PHP वर्शन के अनुसार पोर्ट सेट करें "pathMappings": { // ServBay वेबसाइट के रूट से लोकल सिस्टम पाथ मैप करें // जैसे, अगर आपका प्रोजेक्ट /Applications/ServBay/www/myproject में है // और आप https://servbay.demo/ से एक्सेस करते हैं, तो सर्वर का रूट '/' — लोकल प्रोजेक्ट रूट से मैप करें "/": "${workspaceRoot}" // अगर आपका प्रोजेक्ट /Applications/ServBay/www/myproject में है // और आप https://myproject.servbay.demo/ से एक्सेस करते हैं (सबडोमेन = सबडायरेक्टरी) // तो भी '/' — "${workspaceRoot}" से मैप करें } }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 39083 // अपने PHP वर्शन के अनुसार पोर्ट सेट करें } ] }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28pathMappingsसेवा लिए सेट करें।${workspaceRoot}आपके VS Code प्रोजेक्ट के रूट फोल्डर को दर्शाता है।
डिबगिंग चालू करें:
- अपने PHP प्रोजेक्ट की फाइल VS Code में खोलें।
- कोड लाइन नंबर के बाईं ओर ब्रेकपॉइंट (रेड डॉट) लगाएं।
- रन एंड डिबग व्यू (Ctrl+Shift+D या Cmd+Shift+D) में जाएं।
- डिबग कॉन्फ़िगरेशन ड्रॉपडाउन में "Listen for Xdebug" चुनें।
- हरे रंग के डिबग स्टार्ट बटन पर क्लिक करें। अब नीचे की स्टेटस बार नारंगी हो जाएगी—मतलब लिसनिंग चालू।
- ब्राउज़र में अपनी ऐप्लिकेशन खोलें। सही सेटिंग्स होने पर Xdebug VS Code से कनेक्ट होगा और ब्रेकपॉइंट पर रुकेगा।
सामान्य सवाल (FAQ)
प्र.
phpinfo()में Xdebug क्यों नहीं दिखता?- उत्तर: पक्का करें कि आपने ServBay GUI या मैनुअल
xdebug.iniएडिट कर के Xdebug चालू किया है। - उस PHP वर्शन का सर्विस फिर से शुरू किया है या नहीं, यह भी जांचें।
- देखें कि
xdebug.iniपथ सही है औरzend_extension = xdebug.souncomment है। - ServBay के लॉग्स (
/Applications/ServBay/logs/php/<version>/error.log) में Xdebug से जुड़ी कोई एरर आई है या नहीं, वो भी देख लें।
- उत्तर: पक्का करें कि आपने ServBay GUI या मैनुअल
प्र. IDE में ब्रेकपॉइंट सेट कर लिया, लेकिन कोड ब्रेक पर नहीं रुकता?
- उत्तर: IDE में Xdebug कनेक्शन के लिए लिसनिंग चालू है या नहीं (PHPStorm में कीड़ा आइकन ग्रीन, VS Code में स्टेटस बार नारंगी)।
- IDE में Xdebug पोर्ट वही है जो ServBay की
xdebug.client_portया डिफ़ॉल्ट वर्शन पोर्ट है। - पथ मैपिंग सही से सेट है या नहीं देखें, जिससे सर्वर का फ़ाइल पथ आपके लोकल पाथ से सही से जुड़ सके—यह सबसे आम कंफ्यूजन है।
- फायरवॉल में IDE के लिसनिंग पोर्ट ब्लॉक तो नहीं है।
- अगर
xdebug.iniमेंxdebug.start_with_request=triggerसेट है, तो ब्राउज़र या HTTP रिक्वेस्ट में ट्रिगर (जैसे Xdebug हेल्पर ब्राउज़र एक्सटेंशन, या URL में?XDEBUG_TRIGGER=1) है या नहीं।
प्र. Xdebug कनेक्शन कुछ समय बाद ऑटोमेटिक डिस्कनेक्ट हो जाता है?
- उत्तर:
xdebug.iniमेंxdebug.remote_autostartयाxdebug.start_with_requestके मान देखें—अगर येyesहै तो हर रिक्वेस्ट पर डिबग शुरू हो सकता है, जिससे बार-बार कनेक्शन होता है। बेहतर है कि इसेtriggerमोड पर रखें। - IDE की डिबग सेटिंग्स में कनेक्शन टाइमआउट न बढ़ गया हो, देखें।
- उत्तर:
निष्कर्ष
ServBay ने Xdebug को प्रीइंटीग्रेट और कॉन्फ़िगर करना बहुत साधारण बना दिया है, जिससे PHP डेवलपर्स के लिए Xdebug को चालू करना और इस्तेमाल करना बेहद आसान है। GUI के जरिये या मैन्युअल फ़ाइल एडिट से, आप तुरंत ही ServBay के किसी भी PHP वर्शन पर Xdebug सपोर्ट शुरू कर सकते हैं। PHPStorm, VS Code जैसे पावरफुल IDEs के साथ मिलकर, आप न केवल कोड डिबगिंग बल्कि परफॉर्मेंस ट्यूनिंग और क्वालिटी कंट्रोल में भी स्मार्ट बन सकते हैं, जिससे आपकी डिवेलपमेंट एफिशिएंसी बहुत आगे बढ़ेगी। ServBay और Xdebug का मास्टर कॉम्बिनेशन आपके लोकल PHP डिवेलपमेंट वर्कफ्लो का एक तेज़ और विश्वसनीय हथियार बनेगा।
