ScaleGrid è una soluzione di gestione MongoDB per cloud pubblici. MongoDB (da "enorme") è un database NoSQL scalabile, ad alte prestazioni e open source di 10gen.
ScaleGrid ti aiuterà a eseguire il provisioning, configurare l'alta disponibilità e il ripristino di emergenza, il deprovisioning, il monitoraggio, l'aggiornamento, la clonazione, il backup e il ripristino delle distribuzioni MongoDB su AWS, Azure e DigitalOcean. Uno dei vantaggi di ScaleGrid è che ti offre l'accesso SSH completo alle tue istanze. Ciò ti consente di eseguire il tuo server PHP sulla stessa macchina del tuo server MongoDB, un vantaggio estremamente utile per scenari di sviluppo e test. In questo tutorial, ti mostreremo in cinque semplici passaggi come configurare il tuo server PHP e il server MongoDB sulla stessa macchina.
-
Crea la tua istanza MongoDB su ScaleGrid
Segui le istruzioni per iniziare qui per creare il tuo pool di macchine, creare istanze MongoDB, recuperare le credenziali SSH e SSH nell'istanza oppure consulta la nostra documentazione Creare un cluster MongoDB.
-
Connettiti a MongoDB e popola i tuoi dati
SSH nella tua istanza di MongoDB. Connettiti alla tua istanza MongoDB locale utilizzando il client mongo integrato e avvia alcune query:
/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 }
Creiamo un database fittizio e inseriamo alcuni dati in una raccolta. Le "Raccolte" sono l'equivalente delle tabelle relazionali. Una collezione può contenere molti “documenti” che è l'equivalente delle righe nel mondo relazionale.
>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" }
-
Configura il tuo server PHP
Se hai già un server PHP in esecuzione su una macchina separata dal server MongoDB, puoi saltare questo passaggio e passare al passaggio 4. Se non disponi di un server PHP , puoi installare un server PHP sulla macchina MongoDB. Questo è uno dei vantaggi dell'accesso SSH completo alle tue macchine 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
-
Installa l'estensione PHP Mongo
Il supporto di MongoDB in PHP avviene tramite l'estensione Mongo PHP. Puoi installarlo utilizzando il programma di installazione 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
-
Esegui codice PHP
Recupera la stringa di connessione di MongoDB dalla console ScaleGrid nella scheda dei dettagli nella parte inferiore dello schermo. Se stai eseguendo il tuo codice PHP sulla stessa casella, puoi utilizzare 127.0.0.1.
Scriviamo del codice PHP per interrogare i documenti nella raccolta che abbiamo appena creato. Crea un file chiamato test.php e inserisci il codice qui sotto nel file. Esegui il codice usando "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()); } ?>
Per istruzioni ed esempi più dettagliati, fai riferimento alla documentazione 10gen sull'uso di PHP con Mongo.