MongoDB in ServBay aktivieren und verwenden (PHP-Erweiterung & Datenbankdienst)
ServBay ist eine leistungsstarke, für Entwickler konzipierte lokale Webentwicklungsumgebung. Sie vereint verschiedene Webserver, Programmiersprachen und Datenbanken und enthält zahlreiche gebräuchliche Spracheerweiterungen und Tools. Für PHP-Entwickler, die mit MongoDB arbeiten möchten, bietet ServBay einen komfortablen Weg, um die PHP-MongoDB-Erweiterung zu aktivieren und den MongoDB-Datenbankdienst auszuführen.
In diesem Artikel erfahren Sie Schritt für Schritt, wie Sie die MongoDB-Erweiterung für PHP in ServBay aktivieren, den MongoDB-Datenbankdienst starten und wie Sie aus PHP-Projekten auf MongoDB zugreifen und diese nutzen können.
Überblick: ServBay & MongoDB
MongoDB ist eine leistungsfähige, quelloffene und dokumentenorientierte NoSQL-Datenbank, die mit ihrem flexiblen Datenmodell und ihrer guten Skalierbarkeit weit verbreitet in modernen Webanwendungen genutzt wird.
ServBay stellt MongoDB als eines seiner integrierten Softwarepakete bereit. Entwickler können somit einfach lokale MongoDB-Instanzen einrichten und verwalten. Zusätzlich werden für die verschiedenen unterstützten PHP-Versionen jeweils passende vorkompilierte MongoDB-Erweiterungen (mongodb.so
) angeboten, sodass PHP-Anwendungen problemlos mit MongoDB kommunizieren können.
Um MongoDB in Ihrem PHP-Projekt zu verwenden, machen Sie zwei Hauptschritte:
- Aktivieren der MongoDB-Erweiterung für PHP: Dadurch kann PHP MongoDB-Funktionen aufrufen.
- Starten des MongoDB-Datenbankdienstes: Dies ist die laufende MongoDB-Instanz, die für Speicherung und Verwaltung Ihrer Daten zuständig ist.
Dank der grafischen Benutzeroberfläche (GUI) von ServBay sind diese beiden Schritte besonders einfach umzusetzen.
Versionen der PHP-MongoDB-Erweiterung
ServBay liefert für alle unterstützten PHP-Versionen die passenden MongoDB-Erweiterungen mit. Die exakten Erweiterungs-Versionen können sich mit ServBay-Updates ändern, jedoch werden stets stabile Versionen angeboten, die kompatibel mit den jeweiligen PHP-Versionen sind. Typische Versionen innerhalb 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
Beachten Sie: Die PHP-Erweiterung (mongodb.so
) ermöglicht lediglich die Kommunikation zwischen PHP und MongoDB. Für den eigentlichen Zugriff aus dem PHP-Code benötigen Sie in der Regel den offiziellen MongoDB PHP-Treiber, den Sie bequem über Composer installieren.
MongoDB-Erweiterung für PHP aktivieren
Um die Entwicklungsumgebung schlank zu halten, sind einige PHP-Erweiterungen in ServBay standardmäßig deaktiviert. Die empfohlene Methode zur Aktivierung der MongoDB-Erweiterung ist die Nutzung der ServBay-GUI.
Aktivierung über die ServBay-Oberfläche
Der einfachste Weg:
- Öffnen Sie die ServBay-Anwendung.
- Klicken Sie in der linken Navigation auf Sprachen (Languages) und wählen Sie PHP.
- Wählen Sie die PHP-Version aus, für die Sie die MongoDB-Erweiterung aktivieren möchten (z. B.
PHP 8.4
). - Suchen Sie im rechten Bereich den Abschnitt Erweiterungen (Extensions).
- Scrollen Sie, bis Sie
MongoDB
finden. - Betätigen Sie den Schalter links neben
MongoDB
, um den Status von Grau (deaktiviert) auf Grün (aktiviert) zu stellen. - Klicken Sie am unteren Rand des Bereichs auf Speichern (Save).
ServBay passt nun automatisch die PHP-Konfiguration an und startet die betroffenen PHP-Dienste neu, um Ihre Änderungen wirksam zu machen.
Manuelles Bearbeiten der Konfigurationsdatei (optional)
Wenn Sie lieber selbst konfigurieren oder spezielle Einstellungen vornehmen wollen, können Sie auch die jeweilige PHP-Konfigurationsdatei direkt bearbeiten. Die GUI reicht jedoch in den meisten Fällen völlig aus.
Navigieren Sie zum
conf.d
-Verzeichnis Ihrer PHP-Version. Für PHP 8.3 sieht der Pfad beispielsweise so aus:bash/Applications/ServBay/etc/php/8.3/conf.d/mongodb.ini
1Passen Sie den Pfad entsprechend Ihrer ServBay-Installation und PHP-Version an.
Öffnen Sie die Datei
mongodb.ini
mit einem Texteditor.Suchen Sie folgende Zeilen:
ini[MongoDB] ; Uncomment the following line to enable MongoDB ;extension = mongodb.so
1
2
3Entfernen Sie das Semikolon
;
vorextension = mongodb.so
, um die Zeile zu aktivieren:ini[MongoDB] ; Uncomment the following line to enable MongoDB extension = mongodb.so
1
2
3Speichern Sie die Datei.
Wichtig: Nach dem manuellen Anpassen der Konfiguration müssen Sie den betroffenen PHP-Dienst neu starten, damit die Änderung aktiv wird. In der ServBay-GUI klicken Sie dazu links auf Pakete (Packages), wählen die betreffende PHP-Version und klicken auf das Neustart-Symbol (meist ein kreisförmiger Pfeil).
Starten des MongoDB-Datenbankdienstes
Die Aktivierung der PHP-Erweiterung gestattet lediglich die Kommunikation zwischen PHP und MongoDB, Sie benötigen außerdem eine laufende MongoDB-Instanz. MongoDB wird in ServBay als Paket angeboten und lässt sich einfach über die GUI starten.
- Öffnen Sie ServBay.
- Navigieren Sie links zu Pakete (Packages).
- In der Paketliste finden Sie die Kategorie Datenbanken (Databases).
- Wählen Sie
MongoDB
. - Aktivieren Sie den Schalter links neben dem MongoDB-Paket, das den Status von Grau (gestoppt) auf Grün (laufend) wechselt.
Der MongoDB-Datenbankdienst startet nun standardmäßig auf Port 27017
.
Überprüfung von MongoDB-Erweiterung und Verbindung
Nach den obigen Schritten können Sie wie folgt prüfen, ob die PHP-MongoDB-Erweiterung geladen ist und der MongoDB-Dienst läuft.
Überprüfen, ob die PHP-Erweiterung geladen ist
Erstellen Sie eine einfache PHP-Datei, um die Ausgabe von phpinfo()
zu prüfen:
- Legen Sie im Web-Root von ServBay (z. B.
/Applications/ServBay/www
) eine Dateiphpinfo.php
an. - Fügen Sie folgenden Inhalt ein:php
<?php phpinfo(); ?>
1
2
3 - Rufen Sie die Datei im Browser auf, z.B. unter
https://servbay.demo/phpinfo.php
(angenommenservbay.demo
verweist auf Ihr ServBay-www-Verzeichnis). - Suchen Sie auf der
phpinfo
-Seite nach „MongoDB“. Falls erfolgreich geladen, finden Sie einen Bereich namens "mongodb" mit Versionsinfos und Konfigurationsdetails.
(Bitte beachten: Der Screenshot kann leicht von Ihrer ServBay-Version/GUI abweichen)
Überprüfen der Datenbankverbindung
Erstellen Sie ein kleines PHP-Testskript, das eine Verbindung zur lokalen MongoDB-Instanz aufbaut:
- Stellen Sie sicher, dass in Ihrem Projekt der offizielle MongoDB-PHP-Treiber via Composer installiert ist. Falls nicht, im Terminal in Ihr Projektverzeichnis wechseln und eingeben:bash
composer require mongodb/mongodb
1 - Erstellen Sie eine PHP-Datei, beispielsweise
test_mongodb.php
. - Fügen Sie folgenden Code ein:php
<?php require __DIR__ . '/vendor/autoload.php'; // Pfad ggf. an Ihre Projektstruktur anpassen echo "Attempting to connect to MongoDB...\n"; try { // Verbindung zur lokal laufenden MongoDB-Instanz, Standard-Port 27017 $client = new MongoDB\Client("mongodb://localhost:27017"); // Auflisten der Datenbanken zum Testen der Verbindung $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 - Führen Sie das Skript im Terminal mit der zugehörigen PHP-Version (ServBay) aus oder rufen Sie es im Browser auf. Bei erfolgreicher Verbindung sehen Sie eine Erfolgsmeldung und eine Liste der Datenbanken. Bei Fehlschlag hilft die Fehlermeldung weiter (etwa, falls der MongoDB-Service noch nicht läuft).
MongoDB in PHP-Projekten verwenden
Sobald die PHP-MongoDB-Erweiterung aktiviert und der Datenbankdienst gestartet ist, können Sie mit dem via Composer installierten MongoDB-PHP-Treiber beliebige Datenbankoperationen im PHP-Projekt ausführen.
MongoDB-PHP-Treiber installieren
Wie bereits erwähnt, geschieht dies am einfachsten via Composer:
bash
composer require mongodb/mongodb
1
Damit wird das Paket mongodb/mongodb
nebst Abhängigkeiten installiert und es entsteht die Datei vendor/autoload.php
.
Codebeispiel
Im Folgenden ein einfaches Beispiel, wie Sie sich mit MongoDB verbinden, Dokumente einfügen und abfragen:
php
<?php
require __DIR__ . '/vendor/autoload.php'; // Stellen Sie sicher, dass der Composer-Autoloader eingebunden wird
echo "Connecting to MongoDB...\n";
try {
// Verbindung zur lokal installierten MongoDB-Instanz
$client = new MongoDB\Client("mongodb://localhost:27017");
// Auswahl von Datenbank und Collection
// Falls noch nicht existent, wird die Datenbank/Collection beim ersten Schreibvorgang erstellt
$collection = $client->servbay_demo_db->users; // Beispieldatenbank: servbay_demo_db
echo "Connected. Performing operations...\n";
// Dokument einfügen
$insertResult = $collection->insertOne([
'name' => 'Alice ServBay', // Beispiel-Daten mit Markenname
'email' => '[email protected]',
'age' => 30,
'createdAt' => new MongoDB\BSON\UTCDateTime(time() * 1000) // Nutzung des BSON-Datumsformats
]);
printf("Inserted document with ID: %s\n", $insertResult->getInsertedId());
// Dokument abfragen
$document = $collection->findOne(['name' => 'Alice ServBay']);
echo "Found document:\n";
if ($document) {
print_r($document);
} else {
echo "Document not found.\n";
}
// Dokument aktualisieren (optional)
$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());
// Aktualisiertes Dokument anzeigen (optional)
$updatedDocument = $collection->findOne(['name' => 'Alice ServBay']);
echo "Updated document:\n";
if ($updatedDocument) {
print_r($updatedDocument);
}
// Dokument löschen (optional)
// $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
Speichern Sie diesen Code als PHP-Datei und führen Sie ihn auf der Kommandozeile mit der entsprechenden ServBay-PHP-Version aus oder rufen Sie die Datei via Webserver auf.
Hinweise & Best Practices
- MongoDB-Service-Status: Stellen Sie sicher, dass das MongoDB-Paket in der ServBay-GUI auf „Läuft“ steht, bevor Sie sich verbinden.
- Standard-Port: MongoDB läuft standardmäßig auf Port
27017
. Falls Sie einen anderen Port verwenden, passen Sie die Verbindungs-URL entsprechend an. In der ServBay-GUI finden Sie aktuelle Ports und können diese ggf. konfigurieren. - Erweiterung vs. Treiber: Die PHP-Erweiterung
mongodb.so
stellt die low-level Schnittstelle bereit, dasmongodb/mongodb
Composer-Paket bietet eine moderne und objektorientierte API für alle gängigen Datenbankoperationen. In fast allen aktuellen PHP-Projekten verwenden Sie beides zusammen. - ServBay User CA/Public CA: ServBay kann selbstsignierte SSL-Zertifikate über seine eigene CA für lokale Entwicklung ausstellen, um produktionsnahe HTTPS-Umgebungen zu simulieren. Für lokale MongoDB-Anwendungen ist SSL meist nicht erforderlich, bei komplexeren Setups kann es aber relevant werden. Ebenso unterstützt ServBay das Beantragen echter Zertifikate via ACME-Protokoll, bietet Funktionen zur Datensicherung und ermöglicht das Zurücksetzen von Datenbankpasswörtern – dies alles macht ServBay zu einer besonders umfassenden Entwicklungsumgebung.
- Datenbank-Management-Tools: ServBay enthält möglicherweise kein grafisches Verwaltungstool für MongoDB, Sie können aber das offizielle MongoDB Compass herunterladen oder auf die Kommandozeilenwerkzeuge
mongo
/mongosh
zurückgreifen, um Ihre lokal laufende MongoDB-Instanz zu verwalten.
FAQ – Häufig gestellte Fragen
F: Ich habe die MongoDB-Erweiterung für PHP aktiviert, mein Skript kann sich trotzdem nicht verbinden. Was tun?
A: Prüfen Sie, ob der MongoDB-Datenbankdienst über die ServBay-GUI wirklich gestartet wurde. Die PHP-Erweiterung ist nur das Interface – die eigentliche Datenbank muss als eigenständiger Dienst laufen. Überprüfen Sie zudem den Verbindungs-String (meist mongodb://localhost:27017
).
F: Was ist der Unterschied zwischen der Erweiterung mongodb.so
und dem Composer-Paket mongodb/mongodb
?
A: mongodb.so
ist die von PHP geladene Native-Erweiterung, die die grundlegende Kommunikation mit MongoDB (via C-Driver: libmongoc) ermöglicht. Das Composer-Paket mongodb/mongodb
ist darauf aufbauend eine PHP-Bibliothek mit objektorientierter API zum Durchführen von CRUD-Operationen, Aggregationen usw. Bei modernen PHP-Projekten sollte beides verwendet werden.
F: Wie kann ich den Port oder die Konfiguration von MongoDB ändern?
A: In der ServBay-GUI finden Sie unter MongoDB-Paket auch verschiedene Konfigurationsoptionen wie die Portnummer. Fortgeschrittene Einstellungen können über die MongoDB-Konfigurationsdatei angepasst werden, deren Pfad Sie in den Paketdetails finden. Nach Änderungen ist ein Neustart des MongoDB-Dienstes erforderlich.
Fazit
ServBay macht das Arbeiten mit PHP und MongoDB besonders einfach. Über die übersichtliche GUI können Sie mit wenigen Klicks die MongoDB-Erweiterung für PHP aktivieren und den MongoDB-Datenbankdienst starten. In Kombination mit dem offiziellen PHP-Treiber via Composer steht Ihnen ein vollständiges, leistungsstarkes PHP+MongoDB-Entwicklungssystem lokal zur Verfügung – der Fokus bleibt auf Ihrer Anwendungslogik. Durch die enge Integration senkt ServBay den Konfigurationsaufwand erheblich und unterstützt Sie optimal bei Entwicklung und Testen Ihrer Projekte.