ScaleGrid es una solución de gestión de MongoDB para nubes públicas. MongoDB (de "huongous") es una base de datos NoSQL de código abierto, escalable y de alto rendimiento de la décima generación.
ScaleGrid lo ayudará a aprovisionar, configurar alta disponibilidad y recuperación ante desastres, desaprovisionar, monitorear, actualizar, clonar, respaldar y recuperar sus implementaciones de MongoDB en AWS, Azure y DigitalOcean. Una de las ventajas de ScaleGrid es que le brinda acceso SSH completo a sus instancias. Esto le permite ejecutar su servidor PHP en la misma máquina que su servidor MongoDB, un beneficio extremadamente útil para escenarios de desarrollo y prueba. En este tutorial, le mostraremos en cinco sencillos pasos cómo configurar su servidor PHP y el servidor MongoDB en la misma máquina.
-
Cree su instancia de MongoDB en ScaleGrid
Siga las instrucciones de inicio aquí para crear su grupo de máquinas, crear instancias de MongoDB, recuperar credenciales de SSH y SSH en la instancia, o consulte nuestra documentación sobre Crear un clúster de MongoDB.
-
Conéctese a MongoDB y rellene sus datos
SSH en su instancia de MongoDB. Conéctese a su instancia local de MongoDB utilizando el cliente mongo integrado y realice algunas consultas:
/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 }
Creemos una base de datos ficticia e insertemos algunos datos en una colección. Las "colecciones" son el equivalente de las tablas relacionales. Una colección puede contener muchos "documentos", lo que equivale a filas en el mundo relacional.
>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 tu servidor PHP
Si ya tiene un servidor PHP ejecutándose en una máquina separada de su servidor MongoDB, puede omitir este paso y continuar con el paso 4. Si no tiene un servidor PHP , puede instalar un servidor PHP en la máquina MongoDB. Este es uno de los beneficios de tener acceso SSH completo a sus máquinas 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
-
Instalar la Extensión PHP de Mongo
La compatibilidad con MongoDB en PHP es a través de la extensión Mongo PHP. Puedes instalarlo usando el instalador 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
-
Ejecutar código PHP
Recupere la cadena de conexión de MongoDB desde la consola de ScaleGrid en la pestaña de detalles en la parte inferior de la pantalla. Si está ejecutando su código PHP en el mismo cuadro, puede usar 127.0.0.1.
Escribamos un código PHP para consultar los documentos de la colección que acabamos de crear. Cree un archivo llamado test.php y coloque el código a continuación en el archivo. Ejecute el código 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()); } ?>
Para obtener instrucciones y ejemplos más detallados, consulte la documentación de 10gen sobre el uso de PHP con Mongo.