تفعيل واستخدام MongoDB في ServBay (إضافة PHP وخدمة قاعدة البيانات)
يُعد ServBay بيئة تطوير ويب محلية قوية صُممت خصيصاً للمطورين؛ حيث يدمج بين العديد من خوادم الويب، ولغات البرمجة، وقواعد البيانات، كما يأتي مع العديد من الإضافات والأدوات الشائعة مسبقة التثبيت. بالنسبة لمطوري PHP الذين يحتاجون إلى استخدام قاعدة بيانات MongoDB، يوفر ServBay طريقة سهلة لتفعيل إضافة PHP لمكتبة MongoDB وتشغيل خدمة قاعدة بيانات MongoDB.
في هذا الدليل، سنستعرض بالتفصيل كيفية تفعيل إضافة MongoDB الخاصة بـ PHP، تشغيل خدمة قاعدة بيانات MongoDB، وأيضاً كيفية ربط مشروع PHP بـ MongoDB واستخدامه عملياً.
نظرة عامة: ServBay وMongoDB
تُعد MongoDB قاعدة بيانات NoSQL عالية الأداء ومفتوحة المصدر تعتمد على المستندات، وتتميز بنموذج بيانات مرن وقابلية عالية للتوسع، مما يجعلها خياراً شائعاً لتطبيقات الويب الحديثة.
يأتي ServBay مع MongoDB كإحدى الحزم البرمجية المدمجة، مما يُتيح للمطورين نشر وإدارة مثيلات قواعد بيانات MongoDB المحلية بسهولة. كما أنه يُجهز إضافات MongoDB (مثل mongodb.so
) مُسبقة التحزيم لأنواع مختلفة من PHP ليُمكن تطبيقات PHP من التفاعل مع قاعدة بيانات MongoDB بسلاسة.
لاستخدام MongoDB ضمن مشاريع PHP، يجب اتباع خطوتين رئيسيتين:
- تفعيل إضافة MongoDB في PHP: وهذا يسمح للشفرة البرمجية في PHP باستدعاء دوال وتعليمات MongoDB.
- تشغيل خدمة قاعدة بيانات MongoDB: وهي مثيل قاعدة البيانات نفسه الذي يعمل فعلياً ويخزن البيانات.
واجهة المستخدم الرسومية (GUI) في ServBay تُبسط هذه الإجراءات بشكل كبير.
إصدارات إضافة PHP MongoDB
تُقدم ServBay دعماً لإصدارات متعددة من PHP مع توفير الإضافة المناسبة لكل إصدار. قد تختلف نسخة الإضافة الفعلية حسب تحديثات ServBay، لكن غالباً ستجد نسخاً مستقرة ومتوافقة لكل إصدار PHP. فيما يلي أهم توافقات إصدارات إضافة MongoDB مع PHP ضمن 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 الرسمي لـ PHP، والذي يُفضل تثبيته عبر Composer.
تفعيل إضافة MongoDB في PHP
افتراضياً، وبعض الإضافات في ServBay قد لا تكون مفعّلة حفاظاً على خفة البيئة. التفعيل الأمثل لإضافة MongoDB يتم من خلال واجهة ServBay الرسومية (GUI).
التفعيل عبر واجهة ServBay الرسومية
هذه هي الطريقة الأبسط والأسرع:
- افتح تطبيق ServBay.
- من شريط التنقل الأيسر، اضغط على اللغات (Languages) ثم اختر PHP.
- اختر إصدار PHP الذي ترغب في تفعيل إضافة MongoDB له (مثل
PHP 8.4
). - من اللوحة اليمنى، انتقل إلى قسم الإضافات (Extensions).
- مرر للأسفل حتى تجد إضافة
MongoDB
. - اضغط على زر التبديل بجانب MongoDB بحيث يتحول من اللون الرمادي (غير مفعّل) للأخضر (مفعّل).
- اضغط على زر حفظ (Save) في أسفل اللوحة.
سيقوم ServBay آلياً بتحديث إعدادات PHP وإعادة تشغيل الخدمة ذات الصلة لتطبيق التغييرات.
التفعيل اليدوي عبر تحرير ملف الإعدادات (اختياري)
إذا كنت تفضل الضبط اليدوي أو تحتاج تهيئة متقدمة، يمكنك تحرير ملف إعدادات PHP مباشرة. غالباً التفعيل من واجهة المستخدم الرسومية يكون كافياً.
انتقل إلى مجلد
conf.d
الخاص بإصدار PHP المحدد. مثلاً، لتفعيل MongoDB مع 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
3احذف الفاصلة المنقوطة
;
قبل سطرextension = mongodb.so
لإلغاء تعطيله:ini[MongoDB] ; Uncomment the following line to enable MongoDB extension = mongodb.so
1
2
3احفظ الملف.
مهم: بعد التعديلات اليدوية، يجب عليك إعادة تشغيل خدمة PHP لهذا الإصدار. من واجهة ServBay، اذهب إلى الحزم (Packages) من اليسار، ثم اختر إصدار PHP المعني، واضغط على زر إعادة التشغيل (عادةً يكون أيقونة سهم دائري).
تشغيل خدمة قاعدة بيانات MongoDB
تفعيل إضافة PHP يسمح للتطبيقات بمخاطبة قاعدة MongoDB، ولكنك أيضاً بحاجة إلى مثيل فعلي ومشغّل من قاعدة بيانات MongoDB لتخزين البيانات ومعالجتها. يقدم ServBay هذه الخدمة كإحدى حزم البرمجيات ويمكنك تفعيلها بسهولة من الواجهة الرسومية.
- افتح تطبيق ServBay.
- من الشريط الجانبي، اختر الحزم (Packages).
- ضمن قائمة الحزم، ابحث عن تصنيف قواعد البيانات (Databases).
- ابحث عن حزمة
MongoDB
. - قم بتبديل الزر بجانب MongoDB من الرمادي (متوقف) للأخضر (تشغيل).
سوف تبدأ خدمة قاعدة بيانات MongoDB بالعمل على المنفذ الافتراضي 27017
.
التحقق من تحميل إضافة MongoDB وربط قاعدة البيانات
بعد الخطوات السابقة، يمكنك التأكد من نجاح تحميل إضافة MongoDB في PHP ومن تشغيل قاعدة بيانات MongoDB عبر الطرق التالية.
التحقق من تحميل إضافة PHP
أنشئ ملف PHP بسيط لفحص إظهار phpinfo()
:
- في المجلد الجذري لمواقع ServBay لديك (مثلاً
/Applications/ServBay/www
) أنشئ ملف PHP جديد مثلphpinfo.php
. - أضف التالي للملف:php
<?php phpinfo(); ?>
1
2
3 - افتح الملف من المتصفح مثل
https://servbay.demo/phpinfo.php
(على فرض أنك ضبطتservbay.demo
كموقع). - استخدم البحث في صفحة phpinfo عن كلمة "MongoDB". إذا كان الموديول محملاً، ستجد قسماً باسم "mongodb" يحوي معلومات النسخة والتكوين.
(ملاحظة: قد تختلف الصورة قليلاً حسب إصدار ServBay أو الواجهة لديك)
التحقق من الاتصال بقاعدة البيانات
أنشئ كود PHP بسيطاً لتجربة الاتصال بـ MongoDB محلياً:
- تأكد من تثبيت الدرايفر الرسمي لـ MongoDB عبر Composer في مشروعك. إذا لم تقم بذلك، ادخل لمجلد المشروع وابدأ من الطرفية: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 - شغل السكريبت من الطرفية (باستخدام إصدار PHP لدى ServBay)، أو من خلال الويب. لو نجحت العملية، ستظهر رسالة النجاح وقائمة القواعد. في حال الفشل، ستتمكن من معرفة الخطأ (مثل خدمة MongoDB غير مفعّلة).
استخدام MongoDB في كود PHP
بمجرد تفعيل إضافة MongoDB وتشغيل الخدمة، يمكنك الاستفادة من درايفر MongoDB الرسمي الذي تم تثبيته عبر Composer لتنفيذ الأوامر والعمليات على قاعدة البيانات ضمن مشروع PHP.
تثبيت درايفر MongoDB لـ PHP
كما ذُكر سابقاً، يوصى بتثبيت الدرايفر الرسمي عبر Composer:
composer require mongodb/mongodb
سيتم تثبيت الحزمة المطلوبة واعتمادياتها، وسيتم توليد ملف vendor/autoload.php
تلقائياً.
مثال عملي على الكود
إليك مثال بسيط يشرح كيفية الاتصال بـ MongoDB، وإدخال مستند، ثم إجراء عمليات استعلام وتحديث:
<?php
require __DIR__ . '/vendor/autoload.php'; // تأكد من إدراج ملف التحميل التلقائي لـ Composer
echo "Connecting to MongoDB...\n";
try {
// الاتصال بمثيل MongoDB محلي
$client = new MongoDB\Client("mongodb://localhost:27017");
// اختيار قاعدة بيانات ومجموعة
// إذا لم تكن موجودة، ستُنشأ تلقائياً عند أول إدخال للبيانات
$collection = $client->servbay_demo_db->users; // مثال على قاعدة بيانات
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";
?>
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 أو من خلال خادم الويب المضبط عبر ServBay.
ملاحظات وأفضل الممارسات
- حالة خدمة MongoDB: تأكد دائماً أن حالة حزمة MongoDB في واجهة ServBay هي "قيد التشغيل" قبل محاولة الاتصال.
- المنفذ الافتراضي: MongoDB تعمل على المنفذ
27017
. إذا احتجت تغييره، يمكن تحديد ذلك في سلسلة الاتصال أو إعدادات الحزمة في ServBay. - الإضافة مقابل الدرايفر: إضافة PHP (
mongodb.so
) تتيح الاتصال البيني المنخفض المستوى، أما حزمة Composer (mongodb/mongodb
) فتوفر API كائنية عليا سهلة للاستخدام في العمليات على قاعدة البيانات. ويُنصح بأغلب الحالات استخدام الحزمة مع الإضافة معاً. - شهادات CA المحلية والعامة في ServBay: يدعم ServBay إصدار شهادات SSL عبر CA داخلي للمطورين لمحاكاة بيئة الإنتاج محلياً. غالباً لا تحتاج اتصال SSL بـ MongoDB محلياً، ولكن قد يلزم ذلك في سيناريوهات معينة. كما يدعم ServBay بروتوكول ACME للحصول على شهادات حقيقية، فضلاً عن خاصية نسخ احتياطي وإعادة تعيين كلمة المرور لقاعدة البيانات والمزيد، ليقدم لك بيئة تطوير مثالية ومتكاملة.
- أدوات إدارة قواعد البيانات: لا يأتي ServBay بواجهة إدارة رسومية لـ MongoDB، لكن يمكنك تحميل MongoDB Compass الرسمي، أو استخدام أدوات سطر الأوامر
mongo
أوmongosh
لإدارة قاعدة البيانات المحلية.
الأسئلة المتكررة (FAQ)
س: فعّلت إضافة MongoDB في PHP، لكن السكريبت لا يستطيع الاتصال بقواعد البيانات. ما الحل؟ ج: تأكد من تشغيل خدمة قاعدة بيانات MongoDB فعلياً عبر ServBay. إضافة PHP هي واجهة فقط، والخدمة هي المثيل الفعلي. تحقق أيضاً من صحة سلسلة الاتصال (عادةً mongodb://localhost:27017
).
س: ما الفرق بين إضافة mongodb.so
وحزمة Composer mongodb/mongodb
؟ ج: إضافة mongodb.so
هي توسعة منخفضة المستوى يحمّلها محرك PHP وتوفر تواصلاً مع الدرايفر C الخاص بـ MongoDB. أما حزمة Composer فهي مكتبة PHP تعتمد عليها الإضافة وتوفر API كائنية لإنجاز عمليات CRUD والتجميعات وغيرها. في أحدث مشاريع PHP، ستحتاج عادةً إلى تفعيل الإضافة وتثبيت الحزمة معاً.
س: كيف أغير إعدادات أو منفذ MongoDB؟ ج: يمكنك مراجعة إعدادات الحزمة في واجهة ServBay، وغالباً ستجد خيار تعديل المنفذ. للإعدادات المتقدمة، يمكنك تحرير ملف إعدادات MongoDB المعروف بمساره من تفاصيل الحزمة، وتحتاج لإعادة التشغيل بعد التعديل.
الملخص
يقدّم ServBay بيئة تطوير MongoDB تسهّل العمل على مطوري PHP بشكل كبير؛ بفضل واجهته البصرية، يمكنك تفعيل إضافة MongoDB في PHP وتشغيل قاعدة البيانات بضغطة زر. ومع تثبيت الدرايفر الرسمي عبر Composer، ستجهز بيئة عمل متكاملة لتطوير واختبار مشاريعك محلياً، دون تعقيدات الإعداد اليدوي. تبسيط الإعدادات وتكامل الأدوات في ServBay يسمح لك بالتركيز على منطق مشروعك ويزيد من كفاءتك في اختبارات وتطوير التطبيقات.