ServBay में PHP के Swoole मॉड्यूल को कैसे सक्षम करें
ServBay एक शक्तिशाली स्थानीय वेब विकास वातावरण है, जिसमें कई उपयोगी टूल्स और एक्सटेंशन पहले से ही शामिल हैं — जिनमें हाई परफॉर्मेंस Swoole PHP एक्सटेंशन भी है। Swoole, PHP के लिए विशेष रूप से डिज़ाइन किया गया एक असिंक्रोनस, पैरालल, और हाई परफॉर्मेंस नेटवर्क कम्युनिकेशन इंजन है, जो PHP एप्लिकेशन के प्रदर्शन और स्केलेबिलिटी को काफी बढ़ा सकता है। इस लेख में आप जानेंगे कि ServBay में Swoole एक्सटेंशन कैसे जल्दी और आसान तरीके से सक्षम करें, ताकि आप इसकी शक्तिशाली क्षमताओं के साथ अधिक एफिशिएंट PHP एप्लिकेशन व सेवाएं बना सकें।
Swoole फ्रेमवर्क के बारे में
Swoole एक ओपन-सोर्स प्रोजेक्ट है जो PHP में Node.js जैसे असिंक्रोनस I/O, कोरूटीन, मल्टी-प्रोसेसिंग जैसी आधुनिक विशेषताएं लाता है। Swoole के ज़रिये, PHP डेवलपर्स पारंपरिक वेब सर्वर (जैसे Apache/Nginx + PHP-FPM) की सिंक्रोनस ब्लॉकिंग मॉडल सीमा से आगे बढ़ कर, निम्नलिखित प्रकार की हाई-परफॉर्मेंस, मेमोरी-रेजिडेंट सेवाएं बना सकते हैं:
- हाई-परफॉर्मेंस API गेटवे
- रीयल-टाइम कम्युनिकेशन एप्लिकेशन (WebSocket)
- गेम सर्वर
- IoT (इंटरनेट ऑफ़ थिंग्स) एप्लिकेशन
- बैकग्राउंड सेवाएं व टास्क प्रोसेसिंग
Swoole की मुख्य विशेषताएं
- हाई परफॉर्मेंस: epoll/kqueue जैसी सिस्टम कॉल्स पर आधारित असिंक्रोनस, नॉन-ब्लॉकिंग I/O, मल्टी-थ्रेडिंग, मल्टी-प्रोसेसिंग और कोरूटीन का संयोजन – अधिक थ्रूपुट और कम लेटेंसी देता है।
- असिंक्रोनस और कोरूटीन: कोरूटीन के साथ, असिंक्रोनस कोड को सिंक्रोनस सिंटैक्स में लिख सकते हैं — जिससे प्रोग्रामिंग आसान होती है।
- समृद्ध कंपोनेंट्स: इंटरनली HTTP, WebSocket, TCP, UDP सर्वर और क्लाइंट, कनेक्शन पूल, टाइमर, प्रोसेस मैनेजमेंट आदि शामिल हैं।
- आसान एकीकरण: आप इसे मौजूदा PHP फ्रेमवर्क (जैसे Laravel, Symfony, ThinkPHP आदि) के साथ या पूरी तरह से Swoole-नेटिव एप्लिकेशन बनाने के लिए उपयोग कर सकते हैं।
ServBay में Swoole मॉड्यूल सपोर्ट
ServBay में प्रत्येक PHP वर्शन के लिए Swoole एक्सटेंशन प्री-इंस्टॉल्ड आता है — अलग से डाउनलोड या कंपाइल की ज़रूरत नहीं। ServBay आपके द्वारा चुने गए PHP वर्शन के अनुकूल सही Swoole वर्शन को खुद ही मैनेज करता है।
वर्तमान में, ServBay निम्नलिखित PHP वर्शनों के लिए Swoole एक्सटेंशन सपोर्ट करता है:
- PHP 5.6
- PHP 7.x श्रंखला
- PHP 8.x श्रंखला (PHP 8.5 सहित)
ServBay आपके चुने गए PHP वर्शन के अनुसार उपयुक्त Swoole एक्सटेंशन फाइल्स आटोमेटिकली उपलब्ध कराता है।
पूर्व-शर्तें
Swoole मॉड्यूल को सक्षम करने से पहले, कृपया सुनिश्चित करें:
- आपने ServBay सफलतापूर्वक इंस्टॉल और रन कर लिया है।
- Swoole का उपयोग जिस PHP वर्शन के साथ करना है, वह ServBay में इंस्टॉल और चयनित है।
Swoole मॉड्यूल को ऐक्टिवेट करने के तरीके
ServBay Swoole मॉड्यूल सक्षम करने के लिए दो तरीके देता है: एक ग्राफिकल इंटरफ़ेस के ज़रिए (GUI) और दूसरा मैन्युअली कॉन्फ़िगरेशन फाइल को एडिट करके। GUI का तरीका अधिक आसान और सुविधाजनक है — इसी की सलाह दी जाती है।
ServBay GUI से सक्षम करना (अनुशंसित)
यह Swoole मॉड्यूल ऐनेबल करने का सबसे तेज़ और सीधा तरीका है:
- ServBay का ग्राफिकल यूज़र इंटरफ़ेस खोलें।
- बाएं साइडबार में Languages (भाषाएँ) सेलेक्ट करें।
- PHP पर क्लिक करें।
- दाईं ओर PHP वर्शन लिस्ट में उस PHP वर्शन को ढूंढें, जिसमें Swoole सक्षम करना है (जैसे:
PHP 8.3
)। ध्यान दें कि वांछित वर्शन चुना हुआ है (किसी के आगे का हरा बटन दर्शाता है)। - संबंधित PHP वर्शन के दाईं ओर Extensions (एक्सटेंशन) बटन पर क्लिक करें।
- खुलने वाली एक्सटेंशन लिस्ट में swoole एक्सटेंशन खोजें।
- swoole एक्सटेंशन के बाईं ओर दिए गए स्विच को ऑन कर दें (स्विच हरा हो जाए)।
- विंडो के नीचे Save (सेव करें) या Apply (लागू करें) बटन पर क्लिक करें।
- ServBay आपको नए एक्सटेंशन लोड करने के लिए संबंधित PHP सर्विस को री-स्टार्ट करने के लिए कहेगा। Restart (री-स्टार्ट) बटन दबाएँ।
जब सेवा फिर से शुरू हो जाए, तो Swoole मॉड्यूल सफलतापूर्वक एक्टीवेट हो जाएगा।
मैन्युअल कॉन्फ़िगरेशन एडिट करके (एडवांस्ड)
अगर आपको एडवांस्ड सेटिंग्स चाहिए या आप कॉन्फ़िग फाइल्स मैन्युअली प्रबंधित करना पसंद करते हैं, तो PHP की ini
फाइल एडिट करके भी Swoole चालू कर सकते हैं।
चुने गए PHP वर्शन के
conf.d
डायरेक्टरी तक जाएँ।conf.d
एक्स्ट्रा PHP एक्सटेंशन कॉन्फ़िग फाइल्स रखने का डायरेक्टरी है, जिसे ServBay ऑटो-लोड करता है। उदाहरण के लिए, PHP 8.3 के लिए पाथ आमतौर पर इस प्रकार होगा:/Applications/ServBay/etc/php/8.3/conf.d/
1अगर आपने ServBay किसी कस्टम पाथ में इंस्टॉल किया है, तो उसी अनुसार पाथ को एडजस्ट करें।
इस डायरेक्टरी में
swoole.ini
फाइल ढूँढ़ें और खोलें।डिफ़ॉल्ट रूप से, Swoole सक्षम करने वाली लाइन शायद कॉमेंट की गई हो (line की शुरुआत में
;
हो)। नीचे देखें:ini[Swoole] ; Uncomment the following line to enable Swoole ;extension = swoole.so
1
2
3;
हटा करextension = swoole.so
लाइन को अन-कॉमेंट करें:ini[Swoole] ; Uncomment the following line to enable Swoole extension = swoole.so
1
2
3swoole.ini
फाइल सेव करें।ServBay GUI में मैन मेन्यू या सर्विस मैनेजमेंट पैनल में संबंधित PHP सर्विस को ढूंढें और री-स्टार्ट बटन दबाएँ।
री-स्टार्ट के बाद, Swoole मॉड्यूल कॉन्फ़िगरेशन के अनुसार सफलतापूर्वक लोड हो जाएगा।
यह सत्यापित करें कि Swoole मॉड्यूल सफलतापूर्वक सक्षम हुआ या नहीं
सबसे आम तरीका है, phpinfo()
फंक्शन के ज़रिए देखना कि कौन-कौन-से PHP मॉड्यूल लोड हुए हैं।
- ServBay के किसी साइट के रूट डायरेक्टरी में (जैसे:
/Applications/ServBay/www/servbay.demo/public/
),phpinfo.php
नाम की फाइल बनाएं। phpinfo.php
एडिट करें और इसमें नीचे दी गई सामग्री लिखें:php<?php phpinfo(); ?>
1
2
3- सुनिश्चित करें कि ServBay में
servbay.demo
साइट मौजूद है, और वह डायरेक्टरी उसी फोल्डर की ओर पॉइंट कर रही है जिसमेंphpinfo.php
रखा है। - अपने ब्राउज़र में उस फाइल का यूआरएल खोलें, जैसे
https://servbay.demo/phpinfo.php
। - खुले हुए
phpinfo
पेज में नीचे स्क्रॉल करें या ब्राउज़र सर्च (Ctrl+F या Cmd+F) से "swoole" खोजें।
अगर पेज में Swoole की जानकारी (वर्शन नंबर, सेटिंग्स, आदि) दिखाई दें — यानी Swoole मॉड्यूल लोड और सक्षम हो गया है।
चित्र: phpinfo पेज में Swoole की जानकारी देखें
Swoole का उपयोग उदाहरण
Swoole मॉड्यूल एक्टिवेट हो जाने के बाद, आप Swoole आधारित ऐप्लिकेशन लिख सकते हैं। नीचे एक सिंपल HTTP सर्वर बनाने का Swoole उपयोग उदाहरण है।
उदाहरण कोड: एक सिंपल Swoole HTTP सर्वर बनाना
प्रोजेक्ट डायरेक्टरी बनाएँ अपने मुख्य विकास डायरेक्टरी (जैसे
/Applications/ServBay/www/
) में, एक नया डायरेक्टरी बनाएँ — उदाहरणmy-swoole-app
और उसी मेंpublic
फोल्डर बनाएं:bashcd /Applications/ServBay/www/ mkdir my-swoole-app cd my-swoole-app mkdir public
1
2
3
4सर्वर एंट्री फाइल बनाएं —
public/index.php
php<?php require __DIR__ . '/../vendor/autoload.php'; // अगर आपने Composer से कोई डिपेंडेंसी इंस्टॉल की है use Swoole\Http\Server; use Swoole\Http\Request; use Swoole\Http\Response; // HTTP सर्वर इंस्टेंस बनाएं, सभी लोकल IPs (0.0.0.0) के 9501 पोर्ट पर लिसन करें $server = new Server("0.0.0.0", 9501); // सर्वर पैरामीटर्स सेट करें (ऐच्छिक) // $server->set([ // 'worker_num' => 4, // वर्कर प्रोसेस की संख्या // 'daemonize' => false, // क्या डेमन मोड में चलाना है // ]); // रिक्वेस्ट ईवेंट हैंडल करें $server->on("request", function (Request $request, Response $response) { // रेस्पॉन्स हेडर सेट करें $response->header("Content-Type", "text/plain"); // रेस्पॉन्स बॉडी सेट करें $response->end("Hello ServBay with Swoole!"); }); // सर्वर स्टार्ट ईवेंट हैंडल करें (ऐच्छिक) $server->on("start", function (Server $server) { echo "Swoole http server is started at http://0.0.0.0:9501\n"; }); // सर्वर चालू करें $server->start(); echo "Swoole server stopped.\n"; // यह लाइन सर्वर बंद होने पर ही चलेगी
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
28
29
30
31
32
33
34
35नोट: उदाहरण में
require __DIR__ . '/../vendor/autoload.php';
केवल तभी आवश्यक है जब आपने Composer से कोई Swoole संबंधित लाइब्रेरी (जैसेswoole/ide-helper
या कोई Swoole फ्रेमवर्क) इंस्टॉल की हो। यदि आप केवल Swoole नेटिव कोड चला रहे हैं, तो autoload.php रखना जरूरी नहीं है।कमांड लाइन से सर्वर चलाएं ServBay के टर्मिनल (Terminal) फीचर या अपने सिस्टम के टर्मिनल में अपने प्रोजेक्ट डायरेक्टरी (
/Applications/ServBay/www/my-swoole-app/
) में जाएँ। सुनिश्चित करें कि आपका टर्मिनल ServBay द्वारा मैनेज्ड PHP वर्शन को ही यूज़ कर रहा है (जाँचें:which php
अथवा ServBay टर्मिनल फीचर)।नीचे कमांड चलाकर Swoole सर्वर स्टार्ट करें:
shphp public/index.php
1सब ठीक रहा, तो टर्मिनल में आपको "Swoole http server is started at http://0.0.0.0:9501" जैसे आउटपुट दिखेगा।
चित्र: टर्मिनल में Swoole सर्वर चालू करना
ब्राउज़र से टेस्ट करें सर्वर चालू होने के बाद, ब्राउज़र में
http://localhost:9501
खोलें। आपको "Hello ServBay with Swoole!" मैसेज दिखना चाहिए।सर्वर बंद करने के लिए टर्मिनल में
Ctrl + C
दबाएँ।
महत्वपूर्ण टिप्स
- रन मोड: ऊपर दिया गया उदाहरण Swoole सर्वर को सीधे कमांड लाइन से चलाने का तरीका दर्शाता है — यह मैमोरी-रेजिडेंट सेवाएं बनाने के लिए उपयुक्त है। पारंपरिक वेब एप्लिकेशन (जैसे Laravel/Symfony/WordPress आदि) आमतौर पर PHP-FPM मोड में चलते हैं और Caddy या Nginx प्रॉक्सी के ज़रिए इन तक रिक्वेस्ट भेजी जाती है। यदि आप इन फ्रेमवर्क्स को Swoole में चलाना चाहते हैं (जैसे Hyperf, Swoole-Laravel आदि), तो उनके विशेष स्टार्टअप स्क्रिप्ट्स का उपयोग करें; इनका रन तरीका ऊपर के Swoole नेटिव उदाहरण जैसा होता है — यानी ये अलग प्रोसेस होती हैं।
- पोर्ट कन्फ्लिक्ट: Swoole सर्वर एक निर्दिष्ट पोर्ट (यहाँ 9501) लिसन करता है — सुनिश्चित करें कि वह पोर्ट पहले से किसी और प्रोग्राम के द्वारा उपयोग न हो।
- एरर लॉग्स: Swoole की गलतियाँ और आउटपुट सामान्यतः उस टर्मिनल में प्रिंट होते हैं जहां से इसे स्टार्ट किया गया था, या फिर कॉन्फ़िगरेशन के अनुसार किसी निर्दिष्ट लॉग फाइल में।
सामान्य प्रश्न (FAQ)
Q: मैंने ServBay GUI में Swoole एक्टिवेट कर लिया है, लेकिन phpinfo()
पेज में Swoole की जानकारी नहीं दिखती — क्या करूँ?
A: इन बातों की जाँच करें:
- क्या आप सही PHP वर्शन का
phpinfo()
पेज देख रहे हैं? क्योंकि ServBay में कई PHP वर्शन एक साथ विकल्प हो सकते हैं — सुनिश्चित करें कि जिस PHP का Swoole एक्टिवेट किया, उसी वर्शन से होस्ट की गई साइट या CLI कमांड चला रहे हैं। - क्या आपने ServBay GUI में सेव करके संबंधित PHP सेवा को दुबारा चालू किया है?
- अगर
swoole.ini
आपने मैन्युअली एडिट की है, तो फाइल का पाथ, फाइल नाम औरextension = swoole.so
लाइन सही और अन-कॉमेंटेड है या नहीं — इसे चेक करें।
Q: Swoole उदाहरण चलाते समय Class 'Swoole\Http\Server' not found
एरर आती है?
A: यह आमतौर पर तब होता है जब Swoole एक्सटेंशन आपके PHP एनवायरनमेंट में लोड नहीं हुआ होता। ऊपर दिए गए स्टेप्स से फिर से सत्यापित करें कि Swoole ठीक से सक्षम हुआ है — और यह भी सुनिश्चित करें कि आप कमांड लाइन से php public/index.php
ServBay द्वारा मैनेज्ड, Swoole के साथ PHP वर्शन में ही चला रहे हैं। तेज़ जाँच के लिए टर्मिनल में यह कमांड चलाएँ php -m | grep swoole
— अगर आउटपुट में "swoole" दिख जाए, तो Swoole मॉड्यूल लोड हो गया है।
निष्कर्ष
ServBay के साथ PHP का Swoole एक्सटेंशन सक्षम करना बेहद सरल है। चाहे ग्राफिकल इंटरफेस हो या मैन्युअल कॉन्फ़िगरेशन — आप किसी भी PHP वर्शन के लिए Swoole आसानी से लोड कर सकते हैं, और हाई-परफॉर्मेंस, असिंक्रोनस वेब एप्लिकेशन डिवेलप करना शुरू कर सकते हैं। Swoole की शक्तिशाली क्षमताओं से आप तेज़, अधिक समांतरता वाले PHP सर्वर बना सकते हैं — और PHP को आधुनिक वेब विकास के सभी लाभ दिला सकते हैं। ServBay, वातावरण प्रबंधन आसान बनाता है ताकि आप बार-बार के कॉन्फ़िगरेशन की जगह कोडिंग पर ध्यान दे सकें।