ScaleGrid er en MongoDB-administrationsløsning til offentlige skyer. MongoDB (fra "humongous") er en skalerbar, højtydende, open source NoSQL-database af 10gen.
ScaleGrid hjælper dig med at klargøre, konfigurere høj tilgængelighed og gendannelse af katastrofer, deprovision, overvåge, opgradere, klone, sikkerhedskopiere og gendanne dine MongoDB-implementeringer på AWS, Azure og DigitalOcean. En af fordelene ved ScaleGrid er, at det giver dig fuld SSH-adgang til dine forekomster. Dette giver dig mulighed for at køre din PHP-server på den samme maskine som din MongoDB-server, en yderst nyttig fordel for udviklings- og testscenarier. I denne vejledning viser vi dig i fem enkle trin, hvordan du opsætter din PHP-server og MongoDB-server på den samme maskine.
-
Opret din MongoDB-instans på ScaleGrid
Følg vejledningen for at komme godt i gang her for at oprette din maskinpulje, oprette MongoDB-forekomster, hente SSH-legitimationsoplysninger og SSH ind i forekomsten, eller se vores Opret en MongoDB-klynge-dokumentation.
-
Opret forbindelse til MongoDB og udfyld dine data
SSH i din MongoDB-instans. Opret forbindelse til din lokale MongoDB-instans ved hjælp af den indbyggede mongo-klient og affyr nogle forespørgsler:
/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 }
Lad os oprette en dummy-database og indsætte nogle data i en samling. "Samlinger" svarer til relationelle tabeller. En samling kan indeholde mange "dokumenter", hvilket svarer til rækker i den relationelle verden.
>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" }
-
Konfigurer din PHP-server
Hvis du allerede har en PHP-server, der kører på en maskine, der er adskilt fra din MongoDB-server, kan du springe dette trin over og gå til trin 4. Hvis du ikke har en PHP-server , kan du installere en PHP-server på MongoDB-maskinen. Dette er en af fordelene ved at have fuld SSH-adgang til dine MongoDB-maskiner:
[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
-
Installer Mongo PHP-udvidelsen
MongoDB-understøttelse i PHP er gennem Mongo PHP-udvidelsen. Du kan installere det ved hjælp af PECL-installationsprogrammet:
[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
-
Kør PHP-kode
Hent MongoDB-forbindelsesstrengen fra ScaleGrid-konsollen på fanen detaljer nederst på skærmen. Hvis du kører din PHP-kode på den samme boks, kan du bruge 127.0.0.1.
Lad os skrive noget PHP-kode for at forespørge på dokumenterne i den samling, vi lige har oprettet. Opret en fil kaldet test.php og indsæt koden nedenfor i filen. Kør koden ved hjælp af "php test.php".
<?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()); } ?>
For mere detaljerede instruktioner og eksempler henvises til 10gen-dokumentationen om brug af PHP med Mongo.