ScaleGrid to rozwiązanie do zarządzania MongoDB dla chmur publicznych. MongoDB (od „humongous”) to skalowalna, wysokowydajna baza danych NoSQL typu open source firmy 10gen.
ScaleGrid pomoże Ci udostępnić, skonfigurować wysoką dostępność i odzyskiwanie po awarii, wyrejestrować, monitorować, uaktualniać, klonować, tworzyć kopie zapasowe i odzyskiwać wdrożenia MongoDB na AWS, Azure i DigitalOcean. Jedną z zalet ScaleGrid jest to, że zapewnia pełny dostęp SSH do Twoich instancji. Umożliwia to uruchomienie serwera PHP na tej samej maszynie, co serwer MongoDB, co jest niezwykle użyteczną korzyścią w scenariuszach deweloperskich i testowych. W tym samouczku pokażemy w pięciu prostych krokach, jak skonfigurować serwer PHP i serwer MongoDB na tym samym komputerze.
-
Utwórz instancję MongoDB na ScaleGrid
Postępuj zgodnie z podanymi tu wskazówkami dotyczącymi tworzenia puli maszyn, tworzenia instancji MongoDB, pobierania danych logowania SSH i SSH do instancji lub zapoznaj się z naszą dokumentacją dotyczącą tworzenia klastra MongoDB.
-
Połącz się z MongoDB i wypełnij swoje dane
SSH do instancji MongoDB. Połącz się z lokalną instancją MongoDB za pomocą wbudowanego klienta mongo i uruchom kilka zapytań:
/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 }
Stwórzmy fikcyjną bazę danych i wstawmy niektóre dane do kolekcji. „Kolekcje” to odpowiedniki tabel relacyjnych. Kolekcja może zawierać wiele „dokumentów”, co jest odpowiednikiem wierszy w świecie relacyjnym.
>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" }
-
Skonfiguruj swój serwer PHP
Jeśli masz już serwer PHP działający na komputerze innym niż serwer MongoDB, możesz pominąć ten krok i przejść do kroku 4. Jeśli nie masz serwera PHP , możesz zainstalować serwer PHP na maszynie MongoDB. Jest to jedna z zalet posiadania pełnego dostępu SSH do maszyn MongoDB:
[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
-
Zainstaluj rozszerzenie Mongo PHP
Obsługę MongoDB w PHP zapewnia rozszerzenie Mongo PHP. Możesz go zainstalować za pomocą instalatora PECL:
[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
-
Uruchom kod PHP
Pobierz ciąg połączenia MongoDB z konsoli ScaleGrid na karcie szczegółów u dołu ekranu. Jeśli używasz kodu PHP na tym samym polu, możesz użyć 127.0.0.1.
Napiszmy trochę kodu PHP do wysyłania zapytań do dokumentów w właśnie utworzonej kolekcji. Utwórz plik o nazwie test.php i umieść w nim poniższy kod. Uruchom kod za pomocą „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()); } ?>
Więcej szczegółowych instrukcji i przykładów można znaleźć w dokumentacji 10gen dotyczącej używania PHP z Mongo.