ServBay में MongoDB सक्षम और उपयोग करना (PHP एक्सटेंशन और डेटाबेस सेवा)
ServBay एक शक्तिशाली लोकल वेब डेवलपमेंट एनवायरनमेंट है जिसे डेवेलपर्स के लिए विशेष रूप से डिज़ाइन किया गया है। इसमें कई वेब सर्वर, प्रोग्रामिंग भाषाएं और डेटाबेस शामिल हैं, साथ ही कई लोकप्रिय लैंग्वेज एक्सटेंशन और टूल्स भी प्री-इंस्टॉल्ड मिलते हैं। जो PHP डेवेलपर्स अपने प्रोजेक्ट्स में MongoDB डेटाबेस का इस्तेमाल करना चाहते हैं, उनके लिए ServBay में PHP के MongoDB एक्सटेंशन को सक्षम करने और MongoDB डेटाबेस सेवा को चलाने का बेहद आसान तरीका उपलब्ध है।
यह लेख विस्तार से बताएगा कि ServBay में PHP के MongoDB एक्सटेंशन को कैसे सक्रिय करें, MongoDB डेटाबेस सेवा को शुरू करें, और अपने PHP प्रोजेक्ट में MongoDB से कनेक्ट और उसका उपयोग कैसे करें।
अवलोकन: ServBay और MongoDB
MongoDB एक उच्च प्रदर्शन वाला, ओपन-सोर्स, डॉक्युमेंट-अधारित NoSQL डेटाबेस है, जिसकी डेटा मॉडलिंग और स्केलेबिलिटी के कारण इसे आधुनिक वेब एप्लिकेशन में व्यापक रूप से अपनाया गया है।
ServBay MongoDB को अपने इनबिल्ट सॉफ़्टवेयर पैकेजों में से एक के रूप में प्रदान करता है, जिससे डेवेलपर्स अपने लोकल सिस्टम पर आसानी से MongoDB डेटाबेस इंस्टेंस को डिप्लॉय और मैनेज कर सकते हैं। साथ ही, ServBay PHP के विभिन्न वर्जनों के लिए प्री-कंपाइल्ड MongoDB एक्सटेंशन (mongodb.so
) भी उपलब्ध कराता है, जिससे PHP एप्लिकेशन MongoDB डेटाबेस के साथ आसानी से इंटरैक्ट कर सकते हैं।
PHP प्रोजेक्ट में MongoDB इस्तेमाल करने के दो प्रमुख स्टेप्स हैं:
- PHP का MongoDB एक्सटेंशन सक्षम करें: इससे PHP कोड MongoDB से जुड़े फ़ंक्शंस को कॉल कर सकता है।
- MongoDB डेटाबेस सेवा शुरू करें: यह आपकी मशीन पर चालू MongoDB डेटाबेस इंस्टेंस होता है, जिसके भीतर डेटा संग्रहित और मैनेज होता है।
ServBay का ग्राफिकल यूजर इंटरफेस (GUI) इन दोनों चरणों को बेहद सरल बना देता है।
PHP MongoDB एक्सटेंशन वर्ज़न
ServBay अपने समर्थित सभी PHP वर्जनों के लिए उपयुक्त MongoDB एक्सटेंशन प्रदान करता है। एक्सटेंशन का वर्जन ServBay के अपडेट्स के साथ बदल सकता है, लेकिन आमतौर पर यह PHP वर्शन के हिसाब से स्टेबल और कम्पैटिबल वर्जन ही होता है। नीचे ServBay में सामान्य PHP वर्जनों के लिए MongoDB एक्सटेंशन के वर्जन दिए गए हैं (कृपया हमेशा अपने ServBay वर्शन की पुष्टि करें):
- PHP 5.6, 7.0: MongoDB 1.7.5
- PHP 7.1, 7.2, 7.3, 7.4: MongoDB 1.11.1
- PHP 8.0, 8.1, 8.2, 8.3: MongoDB 1.15.0
- PHP 8.4: MongoDB 1.19.1
ध्यान रखें, PHP एक्सटेंशन (mongodb.so
) केवल PHP और MongoDB के बीच कम्युनिकेशन की क्षमता प्रदान करता है। वास्तव में PHP कोड के ज़रिए MongoDB से ऑपरेशन करने के लिए आमतौर पर ऑफ़िशियल MongoDB PHP ड्राइवर की भी ज़रूरत होती है, जिसे सामान्यतः Composer से इंस्टॉल किया जाता है।
PHP MongoDB एक्सटेंशन सक्षम करना
डिफ़ॉल्ट रूप से, सर्वे बै के कुछ PHP एक्सटेंशन मिनिमल एनवायरनमेंट बनाए रखने के लिए सक्रिय नहीं होते। MongoDB एक्सटेंशन को सक्षम करने का सबसे अच्छा तरीका ServBay GUI है।
ServBay GUI के माध्यम से एक्सटेंशन सक्षम करें
यह सबसे तेज़ और आसान तरीका है:
- ServBay एप्लिकेशन खोलें।
- बाएं नेविगेशन बार में Languages पर क्लिक करें, फिर PHP चुनें।
- उस PHP वर्शन को चुनें जिसमें MongoDB एक्सटेंशन को सक्षम करना है (जैसे,
PHP 8.4
)। - दाएं पैनल में Extensions सेक्शन खोजें।
- नीचे स्क्रॉल करके
MongoDB
एक्सटेंशन ढूंढें। - एक्सटेंशन के बाईं ओर के स्विच को क्लिक करें, जिससे वह ग्रे (डिसेबल) से ग्रीन (एनेबल्ड) हो जाएगा।
- नीचे दिए गए Save बटन पर क्लिक करें।
ServBay खुद ही आवश्यक PHP कॉन्फिग फाइल्स में बदलाव और सम्मिलित PHP सेवाओं को रिस्टार्ट कर देगा, जिससे आपका सेटअप तुरंत प्रभावी हो जाएगा।
मैन्युअल कॉन्फ़िगरेशन फाइल एडिट करना (वैकल्पिक)
यदि आप मैन्युअल तरीक़ा पसंद करते हैं या एडवांस कॉन्फ़िगरेशन करना चाहते हैं, तो आप PHP की कॉन्फिग फाइल्स डायरेक्ट भी एडिट कर सकते हैं। हालांकि, आमतौर पर GUI से ऑपरेशन काफी है।
संबंधित PHP वर्शन के
conf.d
डायरेक्टरी को खोजें। उदाहरण के लिए, PHP 8.3 के लिए पथ अक्सर इस प्रकार होता है:bash/Applications/ServBay/etc/php/8.3/conf.d/mongodb.ini
1अपने ServBay इंस्टॉलेशन और PHP वर्शन के अनुसार ऊपर दिए गए पथ को एडजस्ट करें।
टेक्स्ट एडिटर से
mongodb.ini
फाइल खोलें।निम्नलिखित लाइनें खोजें:
ini[MongoDB] ; Uncomment the following line to enable MongoDB ;extension = mongodb.so
1
2
3extension = mongodb.so
के सामने से सेमीकोलन (😉 हटा दें, जिससे वह एक्टिवेट हो जाएगी:ini[MongoDB] ; Uncomment the following line to enable MongoDB extension = mongodb.so
1
2
3फाइल सेव करें।
महत्वपूर्ण: मैन्युअल बदलाव के बाद आपको संबंधित PHP सेवा को मैन्युअली रिस्टार्ट भी करना होगा। ServBay GUI में, बाएं नेविगेशन बार पर जाएँ Packages, अपने PHP वर्शन को ढूंढें और उसके दाईं ओर रिस्टार्ट बटन (आमतौर पर सर्कल में एरो आइकन) पर क्लिक करें।
MongoDB डेटाबेस सेवा शुरू करना
PHP एक्सटेंशन सक्षम करने का मतलब सिर्फ इतना है कि PHP कोड MongoDB से संवाद कर सकता है, लेकिन आपको वास्तविक डेटा स्टोर और मैनेज के लिए एक चालू MongoDB डाटाबेस इंस्टेंस भी चाहिए। ServBay MongoDB डेटाबेस को भी पैकेज के रूप में प्रदान करता है जिसे GUI के ज़रिए आसानी से शुरू किया जा सकता है।
- ServBay एप्लिकेशन खोलें।
- बाएं नेविगेशन में Packages पर क्लिक करें।
- पैकेज लिस्ट में Databases कैटेगरी देखें।
MongoDB
पैकेज खोजें।- पैकेज के बाईं ओर के स्विच को क्लिक करें, जिससे वह ग्रे (स्टॉप) से ग्रीन (रनिंग) हो जाएगा।
MongoDB डेटाबेस सेवा डिफ़ॉल्ट पोर्ट 27017
पर शुरू हो जाएगी।
MongoDB मॉड्यूल और डेटाबेस कनेक्शन सत्यापित करना
उपरोक्त स्टेप्स के बाद, आप इन तरीकों से जांच सकते हैं कि PHP MongoDB एक्सटेंशन लोड हुआ या नहीं और MongoDB डेटाबेस ठीक से चल रहा है या नहीं।
PHP एक्सटेंशन लोड हुआ या नहीं, ऐसे जांचें
एक साधारण PHP फाइल बनाएं और phpinfo()
की आउटपुट देखें:
- अपने ServBay की वेबसाइट रूट डायरेक्टरी (जैसे
/Applications/ServBay/www
) में एक नया PHP फाइल बनाएं, जैसेphpinfo.php
। - फाइल में यह कोड रखें:php
<?php phpinfo(); ?>
1
2
3 - ब्राउज़र में यह फाइल खोलें, जैसे
https://servbay.demo/phpinfo.php
(मानते हैं किservbay.demo
आपके www डायरेक्टरी का mapped डोमेन है)। - खुले हुए
phpinfo
पेज में "MongoDB" सर्च करें। अगर एक्सटेंशन सफलतापूर्वक लोड हुआ, तो "mongodb" नाम से एक सेक्शन दिखेगा जिसमें एक्सटेंशन का वर्जन और सेटिंग्स होंगी।
(नोट: स्क्रीनशॉट आपके ServBay वर्शन या इंटरफ़ेस से थोड़ा अलग दिखाई दे सकता है)
डेटाबेस कनेक्शन जांचना
एक साधारण PHP स्क्रिप्ट लिखें जिससे लोकल MongoDB डेटाबेस से कनेक्ट होने की कोशिश की जा सके:
- सुनिश्चित करें कि कंपोज़र के माध्यम से आपने अपने प्रोजेक्ट में MongoDB PHP ड्राइवर इंस्टॉल कर लिया है। अगर नहीं किया है, तो प्रोजेक्ट डायरेक्टरी में टर्मिनल खोलकर यह कमांड चलाएं:bash
composer require mongodb/mongodb
1 - प्रोजेक्ट में एक PHP फाइल बनाएं, जैसे
test_mongodb.php
। - यह कोड जोड़ें:php
<?php require __DIR__ . '/vendor/autoload.php'; // अपनी प्रोजेक्ट स्ट्रक्चर के अनुसार पथ एडजस्ट करें echo "Attempting to connect to MongoDB...\n"; try { // लोकल होस्ट पर MongoDB से कनेक्ट करें, डिफॉल्ट पोर्ट 27017 $client = new MongoDB\Client("mongodb://localhost:27017"); // डेटाबेस लिस्ट करें, ताकि कनेक्शन की पुष्टि हो सके $listDatabases = $client->listDatabases(); echo "Successfully connected to MongoDB!\n"; echo "Available databases:\n"; foreach ($listDatabases as $databaseInfo) { echo "- " . $databaseInfo->getName() . "\n"; } } catch (\MongoDB\Driver\Exception\Exception $e) { echo "Failed to connect to MongoDB: " . $e->getMessage() . "\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 - इस स्क्रिप्ट को टर्मिनल से (ServBay के PHP वर्शन का प्रयोग करते हुए) या वेब के ज़रिए चलाएं। यदि कनेक्शन सफल रहा, तो आपको सफल संदेश और डेटाबेस लिस्ट मिल जाएगी। विफलता पर, त्रुटि संदेश समस्या पहचानने में मदद करेंगे (जैसे MongoDB सेवा चालू न होना)।
PHP कोड में MongoDB का उपयोग
PHP MongoDB एक्सटेंशन और MongoDB डेटाबेस सेवा दोनों सक्षम होने के बाद, आप कंपोज़र-इंस्टॉल्ड ऑफिशियल MongoDB PHP ड्राइवर के ज़रिए अपने प्रोजेक्ट में विभिन्न ऑपरेशन चला सकते हैं।
MongoDB PHP ड्राइवर इंस्टॉल करें
जैसा ऊपर बताया गया है, कंपोज़र से ऑफिशियल ड्राइवर इंस्टॉल करना सबसे प्रमाणित तरीका है:
bash
composer require mongodb/mongodb
1
यह mongodb/mongodb
पैकेज और उसके डिपेंडेंसीज़ को इंस्टॉल कर देगा तथा vendor/autoload.php
फाइल जेनरेट करेगा।
कोड उदाहरण
नीचे एक सिंपल उदाहरण है जिसमें MongoDB से कनेक्शन, दस्तावेज़ जोड़ना और क्वेरी करना दिखाया गया है:
php
<?php
require __DIR__ . '/vendor/autoload.php'; // कंपोज़र ऑटोलोड फाइल सुनिश्चित करें
echo "Connecting to MongoDB...\n";
try {
// लोकल MongoDB इंस्टेंस से कनेक्ट करें
$client = new MongoDB\Client("mongodb://localhost:27017");
// डेटाबेस और कलेक्शन सिलेक्ट करें
// अगर डेटाबेस या कलेक्शन मौजूद नहीं, तो MongoDB पहली बार लिखने पर बना देगा
$collection = $client->servbay_demo_db->users; // उदाहरण के लिए servbay_demo_db नाम का डेटाबेस
echo "Connected. Performing operations...\n";
// दस्तावेज़ डालना
$insertResult = $collection->insertOne([
'name' => 'Alice ServBay', // उदाहरण डेटा में ब्रांड नाम
'email' => '[email protected]',
'age' => 30,
'createdAt' => new MongoDB\BSON\UTCDateTime(time() * 1000) // BSON डेटाटाइप का उपयोग
]);
printf("Inserted document with ID: %s\n", $insertResult->getInsertedId());
// दस्तावेज़ खोजना
$document = $collection->findOne(['name' => 'Alice ServBay']);
echo "Found document:\n";
if ($document) {
print_r($document);
} else {
echo "Document not found.\n";
}
// दस्तावेज़ अपडेट करना (वैकल्पिक)
$updateResult = $collection->updateOne(
['name' => 'Alice ServBay'],
['$set' => ['age' => 31, 'status' => 'updated']]
);
printf("Matched %d document(s) for update, modified %d document(s).\n", $updateResult->getMatchedCount(), $updateResult->getModifiedCount());
// अपडेटेड दस्तावेज़ देखना (वैकल्पिक)
$updatedDocument = $collection->findOne(['name' => 'Alice ServBay']);
echo "Updated document:\n";
if ($updatedDocument) {
print_r($updatedDocument);
}
// दस्तावेज़ हटाना (वैकल्पिक)
// $deleteResult = $collection->deleteOne(['name' => 'Alice ServBay']);
// printf("Deleted %d document(s).\n", $deleteResult->getDeletedCount());
} catch (\MongoDB\Driver\Exception\Exception $e) {
echo "An error occurred: " . $e->getMessage() . "\n";
} catch (\Exception $e) {
echo "An unexpected error occurred: " . $e->getMessage() . "\n";
}
echo "Script finished.\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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
इस कोड को PHP फाइल में सेव करें, फिर टर्मिनल से ServBay के PHP CLI के ज़रिए या ServBay द्वारा होस्टेड वेब सर्वर के ज़रिए इसे चलाएँ।
सावधानियाँ और बेस्ट प्रैक्टिस
- MongoDB सेवा की स्थिति: सुनिश्चित करें कि ServBay GUI में MongoDB पैकेज स्टेटस “Running” है, तभी कनेक्शन संभव है।
- डिफॉल्ट पोर्ट: MongoDB सामान्यतः
27017
पोर्ट पर चलता है। अगर आपकी ऐप किसी अन्य पोर्ट पर कनेक्ट करना चाहती है, तो कनेक्शन स्ट्रिंग में पोर्ट विशेष रूप से लिखें। आप ServBay GUI में MongoDB पैकेज का पोर्ट देख/बदल सकते हैं। - एक्सटेंशन बनाम ड्राइवर: PHP का
mongodb.so
एक्सटेंशन मूल कम्युनिकेशन क्षमता देता है, जबकिmongodb/mongodb
Composer पैकेज उच्चस्तरीय, ऑब्जेक्ट-ओरिएंटेड API प्रदान करता है। ज्यादातर आधुनिक PHP ऐप्स Composer पैकेज का प्रयोग करती हैं। - ServBay User CA/Public CA: ServBay अपने इंटरनल CA की मदद से SSL सर्टिफ़िकेट बना सकता है। लोकल डेवेलपमेंट के लिए, यह प्रोडक्शन जैसे HTTPS वातावरण की नकल करने में मदद करता है। हालांकि लोकल MongoDB कनेक्शन में SSL की ज़रूरत नहीं होती, फिर भी उन्नत सेटअप में इसकी आवश्यकता हो सकती है। ServBay ACME प्रोटोकॉल के ज़रिए असली सर्टिफ़िकेट, डेटा बैकअप, पासवर्ड रिसेट आदि सुविधाएं भी देता है।
- डेटाबेस मैनेजमेंट टूल्स: संभव है कि ServBay में MongoDB के लिए GUI मैनेजमेंट टूल न हों, लेकिन आप ऑफिशियल MongoDB Compass डाउनलोड कर सकते हैं या कमांडलाइन टूल
mongo
/mongosh
से अपने ServBay के MongoDB इंस्टेंस को मैनेज कर सकते हैं।
सामान्य प्रश्न (FAQ)
प्र. मैंने PHP MongoDB एक्सटेंशन सक्षम कर लिया, लेकिन PHP स्क्रिप्ट MongoDB से कनेक्ट नहीं हो पा रही, क्या करूं?
उ: कृपया जाँचें कि आपने ServBay GUI से MongoDB डेटाबेस सेवा भी चालू की है। PHP एक्सटेंशन तो सिर्फ इंटरफेस है; असली डेटाबेस इंस्टेंस को “Running” होना ज़रूरी है। साथ ही, कनेक्शन स्ट्रिंग भी सही होनी चाहिए (आमतौर पर mongodb://localhost:27017
)।
प्र. mongodb.so
एक्सटेंशन और mongodb/mongodb
Composer पैकेज में क्या अंतर है?
उ: mongodb.so
PHP इंजन के भीतर मूलस्तर का एक्सटेंशन है, जो PHP से MongoDB C ड्राइवर (libmongoc) तक संवाद की सुविधा देता है। mongodb/mongodb
Composer पैकेज इस एक्सटेंशन के ऊपर आधारित एक PHP लाइब्रेरी है, जो CRUD, एग्रीगेट आदि के लिए उपयोगकर्ता-अनुकूल, ऑब्जेक्ट-ओरिएंटेड API उपलब्ध कराती है। आधुनिक PHP विकास में दोनों ही ज़रूरी हैं: एक्सटेंशन और Composer पैकेज।
प्र. MongoDB का पोर्ट या कॉन्फ़िगरेशन कैसे बदलूं?
उ: आप ServBay GUI में MongoDB पैकेज के कॉन्फ़िगरेशन विकल्प देख सकते हैं — यहां पोर्ट सेटिंग आमतौर पर उपलब्ध होती है। और अधिक एडवांस्ड सेटिंग्स के लिए, MongoDB की कॉन्फ़िगरेशन फ़ाइल एडिट करनी पड़ सकती है, जिसका पथ आप ServBay के पैकेज विवरण में देख सकते हैं। कोई भी बदलाव के बाद, MongoDB सेवा को रिस्टार्ट करना न भूलें।
निष्कर्ष
ServBay PHP डेवेलपर्स के लिए MongoDB लोकल डेवलपमेंट का बेहतरीन समाधान उपलब्ध कराता है। इसके GUI के ज़रिए PHP का MongoDB एक्सटेंशन सक्षम करना और MongoDB डेटाबेस सेवा स्टार्ट करना बेहद सुलभ है। Composer के ज़रिए ऑफिशियल PHP ड्राइवर इंस्टाल करके आप जल्दी ही लोकल PHP + MongoDB एनवायरनमेंट तैयार कर सकते हैं और अपने एप्लिकेशन लॉजिक पर फोकस कर सकते हैं। ServBay की इंटीग्रेटेड क्षमताएँ सेटअप की जटिलता को बहुत कम कर देती हैं, जिससे आप तेज़ी से लोकल डेवेलपमेंट और टैस्टिंग कर सकते हैं।