ScaleGrid ist eine MongoDB-Verwaltungslösung für öffentliche Clouds. MongoDB (von „humongous“) ist eine skalierbare, leistungsstarke Open-Source-NoSQL-Datenbank von 10gen.
ScaleGrid hilft Ihnen bei der Bereitstellung, Konfiguration von Hochverfügbarkeit und Notfallwiederherstellung, Aufhebung der Bereitstellung, Überwachung, Upgrade, Klonen, Sicherung und Wiederherstellung Ihrer MongoDB-Bereitstellungen auf AWS, Azure und DigitalOcean. Einer der Vorteile von ScaleGrid besteht darin, dass Sie vollen SSH-Zugriff auf Ihre Instanzen erhalten. Dadurch können Sie Ihren PHP-Server auf demselben Computer wie Ihren MongoDB-Server ausführen, ein äußerst nützlicher Vorteil für Entwicklungs- und Testszenarien. In diesem Tutorial zeigen wir Ihnen in fünf einfachen Schritten, wie Sie Ihren PHP-Server und Ihren MongoDB-Server auf demselben Rechner einrichten.
-
Erstellen Sie Ihre MongoDB-Instanz auf ScaleGrid
Folgen Sie den Anleitungen zu den ersten Schritten hier, um Ihren Maschinenpool zu erstellen, MongoDB-Instanzen zu erstellen, SSH-Anmeldedaten und SSH in die Instanz abzurufen, oder sehen Sie sich unsere Dokumentation zum Erstellen eines MongoDB-Clusters an.
-
Verbinden Sie sich mit MongoDB und füllen Sie Ihre Daten aus
SSH in Ihre MongoDB-Instanz. Stellen Sie mithilfe des integrierten Mongo-Clients eine Verbindung zu Ihrer lokalen MongoDB-Instanz her und lösen Sie einige Abfragen aus:
/usr/bin/mongo MongoDB shell version: 2.0.7 connecting to: test >show dbs config (empty) local (empty) >db.version() 2.0.7 >db.stats() { "db" : "test", "collections" : 0, "objects" : 0, "avgObjSize" : 0, "dataSize" : 0, "storageSize" : 0, "numExtents" : 0, "indexes" : 0, "indexSize" : 0, "fileSize" : 0, "nsSizeMB" : 0, "ok" : 1 }
Lassen Sie uns eine Dummy-Datenbank erstellen und einige Daten in eine Sammlung einfügen. „Sammlungen“ sind das Äquivalent zu relationalen Tabellen. Eine Sammlung kann viele „Dokumente“ enthalten, was Zeilen in der relationalen Welt entspricht.
>use testdb switched to db testdb >db.testcollection.insert({"name":"blah", "value":"humbug"}); >db.testcollection.insert({"name":"blah1", "value":"humbug1"}); >db.find(); { "_id" : ObjectId("50db292013d7f5d141a9cbfb"), "name" : "blah", "value" : "humbug" } { "_id" : ObjectId("50db292913d7f5d141a9cbfc"), "name" : "blah1", "value" : "humbug1" }
-
Richten Sie Ihren PHP-Server ein
Wenn Sie bereits einen PHP-Server auf einem anderen Computer als Ihrem MongoDB-Server ausführen, können Sie diesen Schritt überspringen und mit Schritt 4 fortfahren. Wenn Sie keinen PHP-Server haben , können Sie einen PHP-Server auf dem MongoDB-Computer installieren. Dies ist einer der Vorteile des vollen SSH-Zugriffs auf Ihre MongoDB-Maschinen:
[root@ip-10-29-173-18 ~]#yum install httpd php [root@ip-10-29-173-18 ~]#chkconfig httpd on [root@ip-10-29-173-18 ~]#service httpd start
-
Installieren Sie die Mongo-PHP-Erweiterung
MongoDB-Unterstützung in PHP erfolgt über die Mongo-PHP-Erweiterung. Sie können es mit dem PECL-Installationsprogramm installieren:
[root@ip-10-29-173-18 ~]#yum install php-pear [root@ip-10-29-173-18 ~]#yum install php-devel [root@ip-10-29-173-18 ~]#yum install make [root@ip-10-29-173-18 ~]#pecl install mongo [root@ip-10-29-173-18 ~]#echo "extension=mongo.so" >> /etc/php.ini [root@ip-10-29-173-18 ~]#/etc/init.d/httpd restart
-
PHP-Code ausführen
Rufen Sie die MongoDB-Verbindungszeichenfolge von der ScaleGrid-Konsole auf der Registerkarte „Details“ unten auf dem Bildschirm ab. Wenn Sie Ihren PHP-Code auf derselben Box ausführen, können Sie 127.0.0.1.
verwendenLassen Sie uns etwas PHP-Code schreiben, um die Dokumente in der gerade erstellten Sammlung abzufragen. Erstellen Sie eine Datei namens test.php und fügen Sie den folgenden Code in die Datei ein. Führen Sie den Code mit „php test.php“ aus.
<?php try { // open connection to MongoDB server $conn = new Mongo('<connection string>'); // access database $db = $conn->testdb; // access collection $collection = $db->testcollection; // execute query // retrieve all documents $cursor = $collection->find(); // iterate through the result set // print each document echo $cursor->count() . ' document(s) found. '; foreach ($cursor as $obj) { echo 'Name: ' . $obj['name'] . ' '; echo 'Value: ' . $obj['value'] . ' '; echo ' '; } // disconnect from server $conn->close(); } catch (MongoConnectionException $e) { die('Error connecting to MongoDB server'); } catch (MongoException $e) { die('Error: ' . $e->getMessage()); } ?>
Ausführlichere Anweisungen und Beispiele finden Sie in der 10gen-Dokumentation zur Verwendung von PHP mit Mongo.