Mengaktifkan & Menggunakan MongoDB di ServBay (Ekstensi PHP & Database MongoDB)
ServBay adalah lingkungan pengembangan web lokal yang kuat dan dirancang khusus bagi developer, lengkap dengan integrasi berbagai web server, bahasa pemrograman, serta basis data. Selain itu, ServBay telah menyediakan beragam ekstensi dan alat bahasa yang sering dibutuhkan. Untuk pengembang PHP yang membutuhkan MongoDB, ServBay menawarkan solusi praktis dalam mengaktifkan ekstensi MongoDB untuk PHP dan menjalankan layanan database MongoDB.
Panduan ini akan memaparkan cara mengaktifkan ekstensi MongoDB di PHP melalui ServBay, memulai layanan MongoDB, serta contoh bagaimana menghubungkan dan menggunakan MongoDB dari proyek PHP Anda.
Gambaran Umum: ServBay & MongoDB
MongoDB adalah database NoSQL berbasis dokumen yang berperforma tinggi, open-source, dan dikenal akan model datanya yang fleksibel serta kemampuannya untuk scaling di aplikasi web modern.
ServBay mengemas MongoDB sebagai salah satu paket bawaannya, sehingga para developer dapat dengan mudah mengelola dan memulai instance MongoDB secara lokal. ServBay juga memaketkan ekstensi MongoDB yang telah di-prebuild (mongodb.so
) untuk setiap versi PHP yang didukung, agar aplikasi PHP dapat berinteraksi dengan MongoDB.
Untuk menggunakan MongoDB di proyek PHP Anda, ada dua langkah utama yang perlu dilakukan:
- Aktifkan ekstensi MongoDB di PHP: Supaya kode PHP bisa memanggil fungsi-fungsi MongoDB.
- Jalankan layanan database MongoDB: Ini adalah instance MongoDB yang berjalan untuk menyimpan dan mengelola data.
Antarmuka grafis (GUI) ServBay membuat kedua proses ini jadi sederhana dan efisien.
Versi Ekstensi PHP MongoDB
ServBay menyediakan ekstensi MongoDB untuk berbagai versi PHP yang didukung. Versi ekstensi dapat berbeda tergantung update ServBay, namun biasanya selalu kompatibel dengan versi PHP terkait. Berikut adalah beberapa kombinasi versi ekstensi dan PHP yang umum ditemukan di ServBay (pastikan sesuai versi ServBay Anda):
- 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
Catatan: Ekstensi PHP (mongodb.so
) hanyalah perantara untuk komunikasi antara PHP dan MongoDB. Untuk benar-benar melakukan operasi database dari kode PHP, Anda perlu menginstal MongoDB PHP driver resmi (biasanya melalui Composer).
Cara Mengaktifkan Ekstensi PHP MongoDB
Secara default, untuk menjaga agar lingkungan tetap ringan, beberapa ekstensi PHP di ServBay belum diaktifkan. Cara paling direkomendasikan untuk mengaktifkannya adalah melalui GUI ServBay.
Mengaktifkan Lewat GUI ServBay
Ikuti langkah berikut:
- Buka aplikasi ServBay.
- Pada menu navigasi kiri, klik Languages (Bahasa), lalu pilih PHP.
- Pilih versi PHP yang ingin Anda aktifkan ekstensi MongoDB-nya (misal:
PHP 8.4
). - Di panel kanan, temukan bagian Extensions (Ekstensi).
- Scroll ke bawah dan cari ekstensi
MongoDB
. - Klik tombol switch di samping
MongoDB
agar berubah dari abu-abu (nonaktif) menjadi hijau (aktif). - Klik tombol Save (Simpan) di bagian bawah panel.
ServBay akan otomatis memperbarui file konfigurasi PHP dan me-restart layanan PHP terkait agar perubahan berlaku.
Edit File Konfigurasi Secara Manual (Opsional)
Jika Anda ingin pengaturan lebih lanjut, Anda dapat mengedit file konfigurasi PHP secara manual (meski dengan GUI biasanya sudah cukup).
Masuk ke direktori
conf.d
pada versi PHP yang Anda gunakan. Misal, untuk PHP 8.3:bash/Applications/ServBay/etc/php/8.3/conf.d/mongodb.ini
1(Sesuaikan path dengan instalasi ServBay dan versi PHP Anda.)
Buka file
mongodb.ini
menggunakan teks editor.Cari baris berikut:
ini[MongoDB] ; Hilangkan tanda komentar pada baris berikut untuk mengaktifkan MongoDB ;extension = mongodb.so
1
2
3Hapus tanda titik koma
;
di depanextension = mongodb.so
:ini[MongoDB] ; Hilangkan tanda komentar pada baris berikut untuk mengaktifkan MongoDB extension = mongodb.so
1
2
3Simpan file.
Penting: Setelah edit manual, Anda perlu me-restart layanan PHP versi terkait agar perubahan berlaku. Di GUI ServBay, klik Packages (Paket) di navigasi kiri, temukan PHP versi tadi, lalu klik icon restart (biasanya berupa panah berputar).
Memulai Layanan Database MongoDB
Mengaktifkan ekstensi PHP memungkinkan kode PHP berkomunikasi dengan MongoDB, namun Anda tetap perlu menjalankan instance database MongoDB agar dapat digunakan. ServBay menyediakan MongoDB sebagai paket terpisah, yang dapat dinyalakan lewat GUI.
- Buka aplikasi ServBay.
- Pada menu navigasi kiri, klik Packages (Paket).
- Di daftar paket, cari kategori Databases (Database).
- Temukan paket
MongoDB
. - Klik switch di samping
MongoDB
agar berubah dari abu-abu (berhenti) ke hijau (aktif).
Layanan MongoDB akan berjalan secara default di port 27017
.
Verifikasi Ekstensi MongoDB & Koneksi Database
Setelah langkah-langkah di atas, Anda bisa memverifikasi apakah ekstensi PHP MongoDB sudah aktif dan layanan database MongoDB berjalan dengan baik.
Verifikasi Ekstensi PHP Aktif
Buat file PHP sederhana untuk melihat output phpinfo()
:
- Di folder root website ServBay Anda (misal
/Applications/ServBay/www
), buat file bernamaphpinfo.php
. - Isi file dengan:php
<?php phpinfo(); ?>
1
2
3 - Akses file ini melalui browser, misal
https://servbay.demo/phpinfo.php
(sesuaikan dengan nama situs yang mengarah ke folderwww
ServBay). - Cari bagian bertuliskan "MongoDB" pada halaman tersebut. Jika ekstensi sudah aktif, akan tampil bagian "mongodb" lengkap dengan versi dan detil konfigurasinya.
(Catatan: tampilan bisa sedikit berbeda tergantung versi ServBay atau antarmukanya)
Verifikasi Koneksi Database
Uji koneksi ke database MongoDB lokal dengan skrip PHP berikut:
- Pastikan Anda telah menginstal driver MongoDB PHP resmi via Composer. Jika belum, masuk ke folder proyek lalu jalankan:bash
composer require mongodb/mongodb
1 - Buat file PHP baru di proyek Anda, misal
test_mongodb.php
. - Isi kode berikut:php
<?php require __DIR__ . '/vendor/autoload.php'; // Sesuaikan path sesuai struktur proyek Anda echo "Mencoba menghubungkan ke MongoDB...\n"; try { // Terhubung ke MongoDB lokal pada port default 27017 $client = new MongoDB\Client("mongodb://localhost:27017"); // Mencoba menampilkan daftar database untuk verifikasi koneksi $listDatabases = $client->listDatabases(); echo "Berhasil terhubung ke MongoDB!\n"; echo "Database yang tersedia:\n"; foreach ($listDatabases as $databaseInfo) { echo "- " . $databaseInfo->getName() . "\n"; } } catch (\MongoDB\Driver\Exception\Exception $e) { echo "Gagal terhubung ke 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 - Jalankan skrip ini dari terminal (menggunakan versi PHP dari ServBay), atau buka lewat web. Jika koneksi berhasil, Anda akan melihat pesan sukses dan daftar database; jika gagal, pesan error akan membantu diagnosis (misal MongoDB belum berjalan).
Menggunakan MongoDB dalam Kode PHP
Setelah ekstensi MongoDB untuk PHP aktif dan database MongoDB berjalan, Anda dapat mulai mengelola data langsung dari kode PHP menggunakan driver yang diinstal dengan Composer.
Instalasi Driver MongoDB PHP
Seperti dijelaskan sebelumnya, gunakan Composer untuk instalasi:
bash
composer require mongodb/mongodb
1
Ini akan memasang paket mongodb/mongodb
beserta dependensinya dan membuat file vendor/autoload.php
.
Contoh Kode
Berikut contoh sederhana koneksi ke MongoDB, insert, dan query data:
php
<?php
require __DIR__ . '/vendor/autoload.php'; // Pastikan autoload Composer ter-include
echo "Menghubungkan ke MongoDB...\n";
try {
// Terhubung ke MongoDB lokal
$client = new MongoDB\Client("mongodb://localhost:27017");
// Pilih database dan koleksi (jika belum ada, akan dibuat otomatis pada insert pertama)
$collection = $client->servbay_demo_db->users; // Contoh database: servbay_demo_db
echo "Terhubung. Melakukan operasi database...\n";
// Insert dokumen
$insertResult = $collection->insertOne([
'name' => 'Alice ServBay', // Contoh data, gunakan brand name
'email' => '[email protected]',
'age' => 30,
'createdAt' => new MongoDB\BSON\UTCDateTime(time() * 1000) // Tipe tanggal BSON
]);
printf("Dokumen berhasil disisipkan dengan ID: %s\n", $insertResult->getInsertedId());
// Query dokumen
$document = $collection->findOne(['name' => 'Alice ServBay']);
echo "Dokumen ditemukan:\n";
if ($document) {
print_r($document);
} else {
echo "Dokumen tidak ditemukan.\n";
}
// Update dokumen (opsional)
$updateResult = $collection->updateOne(
['name' => 'Alice ServBay'],
['$set' => ['age' => 31, 'status' => 'updated']]
);
printf("Ditemukan %d dokumen untuk update, %d dokumen diubah.\n", $updateResult->getMatchedCount(), $updateResult->getModifiedCount());
// Query dokumen yang sudah di-update (opsional)
$updatedDocument = $collection->findOne(['name' => 'Alice ServBay']);
echo "Dokumen setelah di-update:\n";
if ($updatedDocument) {
print_r($updatedDocument);
}
// Menghapus dokumen (opsional)
// $deleteResult = $collection->deleteOne(['name' => 'Alice ServBay']);
// printf("Dihapus %d dokumen.\n", $deleteResult->getDeletedCount());
} catch (\MongoDB\Driver\Exception\Exception $e) {
echo "Terjadi error: " . $e->getMessage() . "\n";
} catch (\Exception $e) {
echo "Error tak terduga: " . $e->getMessage() . "\n";
}
echo "Selesai.\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
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
Simpan kode ini sebagai file PHP. Jalankan melalui terminal menggunakan PHP CLI dari ServBay, atau akses melalui web server yang telah dikonfigurasi via ServBay.
Tips & Praktik Terbaik
- Status Layanan MongoDB: Pastikan status paket MongoDB di GUI ServBay sudah "running" agar aplikasi bisa terhubung.
- Port Default: MongoDB biasanya berjalan di port
27017
. Jika aplikasi butuh port lain, atur di connection string dan cek/modifikasi dari GUI ServBay. - Ekstensi vs Driver: Ekstensi PHP
mongodb.so
hanya menyediakan komunikasi level rendah. Untuk penggunaan dan query database yang lebih mudah dan OO, gunakan paket Composermongodb/mongodb
. Hampir semua aplikasi PHP modern menggunakan pola ini. - CA User ServBay / CA Publik: ServBay mendukung pembuatan sertifikat SSL lokal dengan CA bawaan. Untuk pengembangan, ini memungkinkan simulasi HTTPS layaknya production. Walau koneksi ke MongoDB lokal biasanya tidak butuh SSL, skema advanced kadang memerlukan. ServBay juga support permintaan sertifikat real via ACME, backup data, reset password database, dsb—keunggulan dari solusi all-in-one ServBay.
- Tool Manajemen Database: ServBay mungkin tidak menyertakan GUI manajemen untuk MongoDB, namun Anda dapat mengunduh MongoDB Compass resmi atau menggunakan CLI (
mongo
/mongosh
) untuk pengelolaan instance MongoDB ServBay lokal.
FAQ (Pertanyaan Umum)
T: Saya sudah aktifkan ekstensi MongoDB di PHP, tapi script PHP tidak bisa terhubung ke MongoDB. Solusinya?
J: Pastikan Anda juga telah menyalakan layanan database MongoDB lewat GUI ServBay. Ekstensi hanyalah "jembatan", database adalah server yang nyata berjalan. Periksa juga connection string, harusnya mongodb://localhost:27017
.
T: Apa bedanya ekstensi mongodb.so
dengan paket Composer mongodb/mongodb
?
J: mongodb.so
merupakan ekstensi yang di-load PHP, memberikan akses komunikasi ke MongoDB melalui C driver. Paket Composer mongodb/mongodb
adalah library PHP OO untuk query database, dibangun di atas ekstensi tadi. Di pengembangan PHP modern, Anda umumnya memerlukan keduanya: ekstensi untuk komunikasi dasar, Composer package untuk API yang mudah.
T: Bagaimana mengubah port atau konfigurasi MongoDB?
J: Di GUI ServBay Anda bisa melihat dan kadang mengatur port MongoDB. Untuk konfigurasi lanjut, edit file konfigurasi MongoDB (lokasinya bisa dicek di detail paket ServBay). Setelah mengubah konfigurasi, restart layanan MongoDB.
Kesimpulan
ServBay memberikan pengalaman pengembangan MongoDB yang sangat ramah untuk developer PHP. Dengan antarmuka GUI intuitif, Anda dapat dengan mudah mengaktifkan ekstensi MongoDB untuk PHP dan menjalankan database MongoDB. Dipadukan dengan instalasi driver resmi via Composer, Anda bisa mulai membangun lingkungan pengembangan PHP + MongoDB lokal kapan saja. Integrasi ServBay memangkas kerumitan setup, sehingga Anda bisa lebih fokus pada logika aplikasi dan lebih produktif dalam coding serta testing secara lokal.