ScaleGridは、パブリッククラウド向けのMongoDB管理ソリューションです。 MongoDB(「巨大な」から)は、10genによるスケーラブルで高性能なオープンソースのNoSQLデータベースです。
ScaleGridは、AWS、Azure、およびDigitalOceanでのMongoDBデプロイメントのプロビジョニング、高可用性とディザスタリカバリの構成、プロビジョニング解除、監視、アップグレード、クローン作成、バックアップ、およびリカバリを支援します。 ScaleGridの利点の1つは、インスタンスへの完全なSSHアクセスを提供することです。これにより、PHPサーバーをMongoDBサーバーと同じマシンで実行できるようになり、開発およびテストのシナリオに非常に役立ちます。このチュートリアルでは、PHPサーバーとMongoDBサーバーを同じマシンにセットアップする方法を5つの簡単な手順で示します。
-
ScaleGridでMongoDBインスタンスを作成する
ここで開始手順に従って、マシンプールの作成、MongoDBインスタンスの作成、SSHクレデンシャルとSSHのインスタンスへの取得、またはMongoDBクラスターの作成に関するドキュメントを確認してください。
-
MongoDBに接続してデータを入力する
MongoDBインスタンスにSSHで接続します。組み込みのmongoクライアントを使用してローカルのMongoDBインスタンスに接続し、いくつかのクエリを実行します:
/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サーバーのセットアップ
MongoDBサーバーとは別のマシンでPHPサーバーを既に実行している場合は、この手順をスキップして手順4に進むことができます。PHPサーバーがない場合、MongoDBマシンにPHPサーバーをインストールできます。これは、MongoDBマシンへの完全なSSHアクセスを持つことの利点の1つです:
[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
-
MongoPHP拡張機能をインストールする
PHPでのMongoDBのサポートは、MongoPHP拡張機能を介して行われます。 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コードを実行する
画面下部の[詳細]タブにあるScaleGridコンソールからMongoDB接続文字列を取得します。同じボックスでPHPコードを実行している場合は、127.0.0.1を使用できます。
作成したコレクション内のドキュメントをクエリするためのPHPコードを記述しましょう。 test.phpというファイルを作成し、以下のコードをファイルに入れます。 「phptest.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()); } ?>
詳細な手順と例については、MongoでのPHPの使用に関する10genのドキュメントを参照してください。