ServBay में PHP संस्करण का प्रबंधन: कमांड लाइन और वेबसाइट सेटिंग गाइड
ServBay एक शक्तिशाली स्थानीय वेब डेवलपमेंट टूल है जो macOS और Windows दोनों पर चलता है, और कई प्रोग्रामिंग भाषाओं व डेटाबेस को सपोर्ट करता है। यह लेख विस्तार से समझाएगा कि ServBay में विभिन्न प्रोजेक्ट्स के लिए PHP वर्शन को कैसे आसानी से मैनेज किया जाए—चाहे वह कमांड लाइन से स्क्रिप्ट चलाना हो या किसी वेबसाइट सर्विस के लिए अलग PHP वर्शन सेट करना हो। ServBay का PHP वर्शन प्रबंधन तंत्र सीखकर आप अपनी डेवलपमेंट एफिशिएंसी बढ़ा सकते हैं और प्रोजेक्ट एनवायरनमेंट को पृथक व स्थिर बना सकते हैं।
1. कमांड लाइन एनवायरनमेंट: .servbay.config से प्रोजेक्ट-स्तरीय PHP वर्शन चुनें
प्रोजेक्ट की रूट डायरेक्टरी में .servbay.config फाइल बनाकर, डेवलपर्स हर प्रोजेक्ट के लिए अलग-अलग PHP वर्शन सेट कर सकते हैं। ServBay आपकी टर्मिनल लोकेशन के आधार पर PHP एनवायरनमेंट लोड करता है, जिससे प्रोजेक्ट्स अलग-अलग वर्शन पर आसानी से चलते हैं और कोई ग्लोबल सेटिंग्स टकराती नहीं है।
1. .servbay.config का महत्व और सिस्टम
- प्रोजेक्ट-स्तरीय वर्शन नियंत्रण: ServBay कई PHP वर्शन (PHP 5.6 से लेकर नवीनतम स्थिर और डेवलपमेंट वर्शन) को साथ चलाने की सुविधा देता है।
.servbay.configफाइल के ज़रिए आप हर प्रोजेक्ट के लिए बिल्कुल वही PHP वर्शन चुन सकते हैं जो उसमें जरूरत है। - अनइनवेसिव स्विचिंग: जब आप टर्मिनल में
cdकमांड से किसी ऐसे डायरेक्टरी में जाते हैं जिसमें.servbay.configहै, ServBay उस फाइल को पहचान कर टेम्परेरी तौर पर इस टर्मिनल सेशन की एनवायरनमेंट वैरिएबल्स (खास तौर परPATH) बदल देता है, ताकिphp,composerइत्यादि कमांड्स आपके चुने हुए PHP वर्शन का executable चलाएँ। जैसे ही आप उस डायरेक्टरी से बाहर जाते हैं, एनवायरनमेंट revert हो जाता है। यह आपके OS पर कोई नुकसान या स्थायी असर नहीं डालता।
2. कैसे कॉनफिगर करें
अपने प्रोजेक्ट की रूट डायरेक्टरी में .servbay.config फाइल बनाएँ और PHP वर्शन सेट करने के लिए इसमें नीचे दिए गए कंटेंट जोड़ें:
bash
# इस प्रोजेक्ट के लिए PHP वर्शन चुनें (उदाहरण: PHP 8.3)
PHP_VERSION=8.3
# अगर आपका प्रोजेक्ट किसी खास Node.js वर्शन पर निर्भर है तो वह भी चुनें (उदाहरण: Node.js 20)
# NODE_VERSION=201
2
3
4
5
2
3
4
5
PHP_VERSIONमें वही वर्शन दें जो आपकी ServBay इंस्टॉल में एक्टिव है, आमतौर पर मेजर/माइनर वर्शन जैसे7.4,8.1,8.3,8.5आदि। ध्यान रहे, चुना गया वर्शन ServBay में इंस्टॉल और एक्टिव होना चाहिए।NODE_VERSIONभी इसी तरह से काम करता है, अगर आपको Node.js वर्शन भी सेट करना है।
प्रभाव की पुष्टि:
cd करके उस प्रोजेक्ट डायरेक्टरी में जाएँ जहाँ .servbay.config है, फिर नीचे दिए गए कमांड्स चलाएँ:
bash
$ pwd # कन्फर्म करें कि आप प्रोजेक्ट की रूट डायरेक्टरी में हैं
$ php -v # यह चेक करें कि PHP वर्शन आपकी सेटिंग के अनुसार (उदाहरण: PHP 8.3.x) है
$ composer install # डिपेंडेंसी इंस्टालेशन इसी PHP वर्शन पर चलेगी1
2
3
2
3
अगर .servbay.config बदलने के बाद वर्शन नहीं बदला है, तो टर्मिनल को बंद करके फिर खोलें या cd . कमांड चला कर ServBay से कॉन्फिग लो़डिंग रीफ्रेश कर लें।
3. ध्यान रखने की बातें और प्रो टूल्स
- वर्शन कम्पैटिबिलिटी: अगर आपको "Class not found", "Call to undefined function" जैसे एरर मिलते हैं, तो पहले अपने प्रोजेक्ट डिपेंडेंसी (जैसे
composer.json) में PHP वर्शन की जरूरत चेक करें और ServBay में वही वर्शन चुनें। पुराने प्रोजेक्ट्स शायद वैसे फीचर्स/एक्सटेंशन चाहें जो नए PHP वर्शन में हटा दिए गए हैं (जैसे PHP 7.2 मेंmcryptहट गया है)। - ग्लोबल डिफॉल्ट: अगर आपकी ऐक्टिव डायरेक्टरी या उसके ऊपर की किसी डायरेक्टरी में
.servbay.configनहीं है, तो ServBay इस्तेमाल करेगा जो आपने GUI में "Settings" में ग्लोबल PHP वर्शन चुना है। - मल्टी सर्विस सहयोग:
.servbay.configसे सिर्फ PHP ही नहीं, Node.js भी सेट कर सकते हैं (NODE_VERSIONवैरिएबल से)। यह खासकर उन प्रोजेक्ट्स के लिए फायदेमंद है, जहाँ PHP बैकएंड है और Node.js फ्रंटेंड बिल्ड टूल्स (Webpack, Vite आदि) में इस्तेमाल होता है।
4. चलाने का उदाहरण
नीचे एक उदाहरण है जिसमें दो अलग-अलग प्रोजेक्ट्स की डायरेक्टरी में PHP वर्शन अपने आप बदलता है:
तस्वीर विवरण: ServBay में, जब आप उन फोल्डर्स में जाते हैं जहाँ अलग-अलग .servbay.config फाइल है, और फिर php -v कमांड चलाते हैं, तो टर्मिनल उसी फाइल में चुने PHP वर्शन पर स्विच हो जाता है।
2. वेबसाइट एनवायरनमेंट: ServBay GUI से PHP वर्शन सेट करें
ServBay का ग्राफिकल इंटरफ़ेस हर वेबसाइट के लिए शानदार PHP वर्शन चयन की सुविधा देता है। वेबसाइट एनवायरनमेंट का PHP वर्शन कमांड लाइन से अलग है, और आप दोनों को अपने हिसाब से सेट कर सकते हैं।
1. कैसे सेटअप करें
- ServBay GUI खोलें: ServBay ऐप लॉन्च करें।
- वेबसाइट मैनेजमेंट पर जाएँ: मुख्य स्क्रीन के बाएँ sidebar में Websites (वेबसाइट्स) टैब क्लिक करें।
- साइट जोड़ें या एडिट करें:
- बाएँ नीचे + बटन दबाएँ और नई वेबसाइट जोड़ें।
- या किसी मौजूदा वेबसाइट पर क्लिक करके उसकी सेटिंग्स एडिट करें।
- अन्य साइट प्रॉपर्टीज सेट करें:
- Root Directory (वेब रूट फोल्डर): उस फोल्डर का रास्ता दें जहाँ आपकी साइट फाइल्स रखी गई हैं। आमतौर पर ServBay का डिफॉल्ट रास्ता
/Applications/ServBay/www/your-website-name/public(Laravel या Symfony जैसे प्रोजेक्ट के लिए) होता है। - Domain (डोमेन): लोकल डेवलपमेंट के लिए अपना डोमेन नाम सेट करें—उदाहरण
your-website-name.servbay.demo। ServBay लोकल DNS और HTTPS कनेक्शन (ServBay User CA/Public CA से) खुद मैनेज करता है, इससे डेवलपमेंट व टेस्टिंग के दौरान सब आसान हो जाता है। - PHP Version: ड्रॉपडाउन में अपनी पसंद का ऐक्टिव PHP वर्शन चुनें। इसमें ServBay में इंस्टॉल किए गए सारे PHP वर्शन दिखेंगे (7.4, 8.1, 8.3, 8.5 आदि)।
- Root Directory (वेब रूट फोल्डर): उस फोल्डर का रास्ता दें जहाँ आपकी साइट फाइल्स रखी गई हैं। आमतौर पर ServBay का डिफॉल्ट रास्ता
- सेव करें: सब सेटिंग्स चुनकर सेव बटन क्लिक करें। इसके बाद ServBay अपनी सेटिंग्स लागू करेगा—शायद आपको अपने Web server और PHP-FPM process को reload/restart करना पड़े।
2. तकनीकी बातें और फायदे
- सर्विस पृथक्करण: हर वेबसाइट के PHP वर्शन के लिए ServBay एक अलग PHP-FPM process pool चलाता है। इससे अलग-अलग साइट्स के PHP एनवायरनमेंट में कोई टकराव नहीं होता—किसी एक साइट का ऐरर या मेमोरी लीकेज दूसरी साइट्स को प्रभावित नहीं करता।
- परफॉरमेंस ऑप्टिमाइजेशन: ServBay के सारे पैकेज (PHP समेत) ARM64 (Apple Silicon) और X86_64 दोनों के लिए ऑप्टिमाइज़ किए गए हैं, ताकि हर हार्डवेयर पर बेहतरीन परफॉरमेंस मिले।
- एरर डिबगिंग:
- PHP एरर लॉग:
/Applications/ServBay/var/log/php/php_error.logमें PHP एरर देखें। - PHP-FPM स्टेटस: ServBay के CLI टूल
servbayctl status php 8.3से किसी PHP वर्शन के रनिंग स्टेटस की जांच करें।
- PHP एरर लॉग:
3. वेब सर्वर और डेटाबेस इंटीग्रेशन
ServBay आपको प्रोजेक्ट जरूरत के हिसाब से वेब सर्वर और डेटाबेस चुनने की पूरी आजादी देता है:
- वेब सर्वर सपोर्ट: ServBay संस्करण 1.7.0 और आगे से आप वेबसाइट के लिए Apache, Nginx या Caddy—जो चाहें चुन सकते हैं। ये सब ServBay के PHP-FPM से seamlessly integrate होते हैं।
- डेटाबेस: ServBay में आप MySQL, MariaDB, PostgreSQL, MongoDB, Redis वगैरह कई डेटाबेस इंस्टॉल और मैनेज कर सकते हैं। आप इनका इस्तेमाल वेबसाइट सेटिंग्स या प्रोजेक्ट कोड में कर सकते हैं—जैसे Laravel प्रोजेक्ट्स को MariaDB 11.x के साथ चलाना है।
3. क्रॉस-एनवायरनमेंट सहयोग और Best Practices
कमांड लाइन वर्शन मैनेजमेंट और वेबसाइट वर्शन सेटिंग में फर्क जानना मदद करेगा कि किस स्टेज में कौन सा तरीका चुनना चाहिए:
| स्थिति | कमांड लाइन सेटिंग (.servbay.config) | वेबसाइट सेटिंग (ServBay GUI) | टिप्पणी |
|---|---|---|---|
| पुराना सिस्टम मेंटेन | प्रोजेक्ट रूट में PHP_VERSION=5.6 | वेबसाइट सेटिंग में PHP 5.6 चुनें | सुनिश्चित करें, ServBay में आपकी जरूरत के PHP वर्शन और एक्सटेंशन इंस्टॉल हैं। |
| नया प्रोजेक्ट डेवलपमेंट (जैसे Laravel 11) | PHP_VERSION=8.3 और साथ में NODE_VERSION=20 | नई वेबसाइट जोड़कर रूट को प्रोजेक्ट के public फोल्डर पर सेट करें, PHP 8.3+ चुनें, डेवलपमेंट डोमेन और HTTPS सेट करें | CLI टूल्स (Composer, Artisan, Node) और वेब एनवायरनमेंट में एक जैसा PHP वर्शन रखें। |
| भविष्य के PHP वर्शन की टेस्टिंग | टेस्ट प्रोजेक्ट रूट में PHP_VERSION=8.5 | टेस्टिंग वेबसाइट में PHP 8.5 चुनें | नए PHP वर्शन की कम्पैटिबिलिटी टेस्टिंग के लिए। |
| Composer कमांड चलाना | तय करें .servbay.config में सही PHP वर्शन है | N/A (Composer CLI में चलता है) | Composer कमांड आपकी टर्मिनल एनवायरनमेंट के PHP वर्शन पर ही चलेगी। |
नोट करें
- CLI और Web एनवायरनमेंट में फर्क: भले ही आप एक ही PHP वर्शन नाम दें, CLI (कमांड लाइन) और Web सेवाओं (PHP-FPM) की डिफॉल्ट सेटिंग्स व एक्सटेंशन लोडिंग में फर्क हो सकता है। जैसे—
opcacheएक्सटेंशन PHP-FPM में by default ऑन रहता है, CLI में off। अगर आपको किसी फर्क की वजह समझ न आए, तो ServBay में हर PHP वर्शन का अपनाphp.iniचेक करें और कौन-कौन से एक्सटेंशन एक्टिव हैं देखें। - ServBay Runtime अपडेट करें: सुनिश्चित करें आपके ServBay ऐप और Runtime हमेशा अपडेटेड हैं। ServBay टीम नियमित रूप से नए वर्शन, सिक्योरिटी पैच आदि जारी करती है। नया ServBay इंस्टॉल करने से Runtime भी ऑटो अपडेट होता है, जिससे नई सुविधाएँ और सुधार मिलते हैं।
सामान्य प्रश्न (FAQ)
Q: अगर कमांड लाइन और वेबसाइट के PHP वर्शन टकराते हैं तो क्या करें?
A: कमांड लाइन (जो .servbay.config से नियंत्रित होती है) और वेबसाइट (ServBay GUI से)—ये पूरी तरह स्वतंत्र हैं। .servbay.config आपकी टर्मिनल सेशन में php कमांड से चलने वाला PHP वर्शन तय करता है; जबकि वेबसाइट सेटिंग्स Web सर्वर (Apache/Nginx/Caddy) के जरिए PHP-FPM से वेब रिक्वेस्ट प्रोसेसिंग के समय PHP वर्शन तय करती हैं। इनका आपस में कोई टकराव नहीं; आप चाहें तो एक ही प्रोजेक्ट में CLI के लिए एक PHP वर्शन और वेबसाइट पर दूसरा PHP वर्शन इस्तेमाल करें—हालाँकि, बेहतर यही है कि वातावरण (डेवलपमेंट और प्रोडक्शन) एक जैसा PHP वर्शन रखें।
निष्कर्ष
ServBay की .servbay.config फाइल और यूज़र-फ्रेंडली ग्राफिकल इंटरफ़ेस आपको PHP वर्शन मैनेजमेंट पर पूरी आजादी देते हैं। चाहे आपको पुराने वर्शन PHP के साथ लेगेसी प्रोजेक्ट चलाना हो या नए PHP वर्शन के साथ आधुनिक एप्लिकेशन वेब डेवलप करना हो—ServBay सब आसान बनाता है। इन टूल्स की समझदारी से मदद लें तो आपके लोकल डेवलपमेंट एनवायरनमेंट और लाइव सर्वर में ज्यादा साम्यता आएगी, और विकास प्रक्रिया में दक्षता व स्थिरता मिलेगी।
