ScaleGrid е решение за управление на MongoDB за публични облаци. MongoDB (от „humongous“) е мащабируема, високопроизводителна база данни NoSQL с отворен код от 10gen.
ScaleGrid ще ви помогне да осигурите, конфигурирате висока наличност и възстановяване след бедствие, обезпечаване, наблюдение, надстройка, клониране, архивиране и възстановяване на внедряванията на MongoDB в AWS, Azure и DigitalOcean. Едно от предимствата на ScaleGrid е, че ви дава пълен SSH достъп до вашите екземпляри. Това ви позволява да стартирате вашия PHP сървър на същата машина като вашия MongoDB сървър, изключително полезно предимство за сценарии за разработка и тестване. В този урок ще ви покажем в пет прости стъпки как да настроите своя PHP сървър и MongoDB сървър на една и съща машина.
-
Създайте своя екземпляр на MongoDB в ScaleGrid
Следвайте указанията за започване тук, за да създадете своя машинен пул, да създадете екземпляри на MongoDB, да извлечете SSH идентификационни данни и SSH в екземпляра или да разгледате нашата документация за създаване на MongoDB клъстер.
-
Свържете се с MongoDB и попълнете данните си
SSH във вашия екземпляр на MongoDB. Свържете се с вашия локален екземпляр на MongoDB с помощта на вградения mongo клиент и пуснете някои заявки:
/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 }
Нека създадем фиктивна база данни и да вмъкнем някои данни в колекция. „Колекциите“ са еквивалент на релационни таблици. Една колекция може да съдържа много „документи“, което е еквивалент на редове в релационния свят.
>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" }
-
Настройте своя PHP сървър
Ако вече имате PHP сървър, работещ на машина, отделна от вашия MongoDB сървър, можете да пропуснете тази стъпка и да преминете към стъпка 4. Ако нямате PHP сървър , можете да инсталирате PHP сървър на MongoDB машината. Това е едно от предимствата на пълен SSH достъп до вашите 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
-
Инсталирайте разширението Mongo PHP
Поддръжката на MongoDB в PHP е чрез разширението Mongo PHP. Можете да го инсталирате с помощта на инсталатора на 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
-
Изпълнете PHP код
Извлечете низа за връзка MongoDB от конзолата ScaleGrid в раздела с подробности в долната част на екрана. Ако изпълнявате своя PHP код в същото поле, можете да използвате 127.0.0.1.
Нека напишем някакъв PHP код, за да потърсим документите в колекцията, която току-що създадохме. Създайте файл, наречен test.php и поставете кода по-долу във файла. Изпълнете кода с помощта на “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()); } ?>
За по-подробни инструкции и примери вижте документацията на 10gen относно използването на PHP с Mongo.