Retour

MongoDB pour PHP

23 oct. 2011
2mn

Aujourd'hui, petit tuto pour installer MongoDB pour php5. Pour cela plusieurs étapes sont nécessaires aussi bien sur le serveur que sur la partie software. Sur ce tuto nous travaillons sur un ubuntu 10.10 lors de l'installation des différents softwares.

Installation de MongoDB

Pour installer le serveur Mongo la meilleure solution est d'utiliser le package mongo fait pour ubuntu.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

Puis ajouter la ligne suivante dans le fichier /etc/apt/source.list

deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

Pour terminer, lancer les deux commandes suivantes:

sudo apt-get update sudo apt-get install mongodb-10gen

Si tout c'est bien passé le message suivant doit apparaître:

Adding system user `mongodb' (UID 110) ... Adding new user `mongodb' (UID 110) with group `nogroup' ... Not creating home directory `/home/mongodb'. Adding group `mongodb' (GID 118) ... Done. Adding user `mongodb' to group `mongodb' ... Adding user mongodb to group mongodb Done. mongodb start/running, process 1937

Installation d'un "phpmyadmin"

Maintenant que le serveur mongo est lancé, il faut installer un "phpmyadmin" pour pouvoir interagir avec les données de MongoDB. Il existe de nombreux softwares pour cela:

  1. phpmoadmin
  2. obricot
  3. rockmongo

Pour ce tuto nous allons installer rockmongo. Commençons par télécharger la dernière version de rockmongo. rockmongo-v1.1.0

Ensuite il faut l'envoyer sur le serveur:

scp path_to_rockmongo.zip username@host:~

Puis on dezippe le dossier:

unzip rockmongo.zip

Ensuite il faut mettre la configuration de notre mongo dans le fichier config.php. Puis nous devons ajouter le virtualhost pour accéder à notre rockmongo, voici un exemple:

// etc/apache2/site-available/rockmongo <VirtualHost *:80> ServerName rockmongo.host ServerAlias rockmongo.host DocumentRoot "/home/rockmongo" DirectoryIndex index.php <Directory "/home/rockmongo"> AllowOverride All Allow from All </Directory> <DirectoryMatch .svn> Order allow,deny Deny from all </DirectoryMatch> RedirectMatch 403 /phpmyadmin(.*) </VirtualHost>

Ensuite comme d'habitude, on lance les commandes pour relancer apache2:

sudo a2ensite rockmongo sudo /etc/init.d/apache2 restart

Si tout c'est bien passé rockmongo est visible sur le navigateur à l'url choisi. Pour la plupart, vous devez avoir le message suivant sur le navigateur:

To make things right, you must install php_mongo module. Here for installation documents on PHP.net.

Installation de mongo pour php

Cela reste très simple, lancer la commande

sudo pecl install mongo

Une fois la commande lancée, il faut ajouter la ligne suivante:

extension=mongo.so

Dans les fichiers /etc/php5/cli/php.ini et /etc/php5/apache2/php.ini Vous pouvez dès maintenant utiliser MongoDb dans votre projet PHP. Pour cela voici un exemple d'utilisation.

<?php // Permet la connexion à MongoDb $m = new Mongo(); // Sélectionner la base $db = $m->test; // Puis la collection (qui correspond à une table sur mysql) $collection = $db->user; // Ajout d'un utilisateur dans la base $obj = array( "name" => "jonathan", "password" => "test" ); $collection->insert($obj); // Permet de rechercher tous les éléments d'une collection $cursor = $collection->find(); // Et enfin une petite boucle foreach ($cursor as $obj) { echo $obj["title"] . "n"; } ?>

Ce tuto est terminé, surtout s'il vous a aidé, partagez-le sur vos facebook :)


Articles sur le même thème

Comment créer de la dette technique dès le début d’un nouveau projet ?

Quand on arrive sur un projet existant, on doit souvent subir une dette technique qui nous fait perdre du temps et qui nous rend fou au point de vérifier qui a fait le code. Vous aussi vous voulez entrer dans la postérité lors d’un git blame et mal concevoir votre produit ?

9 août 20238mnMarianne Joseph-Géhannin

Découvrez Eleven Labs

Notre site pour mieux nous connaître

J'y vais

Contact

Eleven Labs - Paris

102, rue du Faubourg Saint Honoré

75008 Paris

Eleven Labs - Nantes

42, rue la Tour d'Auvergne

44200 Nantes

Eleven Labs - Montréal

1155, Metcalfe St Suite 1500

Montréal, QC H3B 2V6, Canada

business@eleven-labs.com

01.82.83.11.75