web-dev-qa-db-fra.com

Comment installer l'extension Mongodb PHP sous Ubuntu 16.04 LTS

J'utilise Ubuntu 16.04 LTS et je veux utiliser Mongodb avec PHP. Pour cela j'ai essayé

Sudo apt-get install php5-mongo

ce qui est suffisant pour Ubuntu 14.04 LTS serait suffisant mais je me suis trompé. Je reçois un message d'erreur comme:

E: Unable to locate package php5-mongo

Je viens de mettre à niveau le système d'exploitation de la machine vers Ubuntu 16.04 LTS et je voulais utiliser mongodb avec PHP 7.0.4.

Alors, que puis-je faire pour résoudre ce problème?

26
Vikash Kumar

Pour installer l'extension mongodb, faites:

Sudo apt-get install php-mongodb
50
Videonauth

Je suis sûr que vous avez trouvé une solution maintenant. Cependant, je veux partager comment je l'ai fait:

8
chickenchilli

J'utilise la version 7.0 de PHP sur Ubuntu 16.04. Je donne une information détaillée pour l'installation du pilote/client mongo. J'ai d'abord installé manuellement mongodb, puis le pilote mongodb-php correspondant.

1) Installation de mongo db. Entrez les commandes suivantes:

$ Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | Sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

$ Sudo apt-get update

$ Sudo apt-get install -y mongodb-org

Afin de lancer correctement Mongdb en tant que service, c'est-à-dire de démarrer automatiquement Mongodb au démarrage du système, procédez comme suit:

Créez le fichier mongodb.service dans/etc/systemd/system/en entrant la commande suivante:

$ Sudo nano /etc/systemd/system/mongodb.service

Collez-y le contenu suivant:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

Puis entrez les commandes suivantes:

$ Sudo systemctl start mongodb

$ Sudo systemctl enable mongodb

2) Installation du pilote mongo-php:

$ Sudo pecl install mongodb

Aussi, vous pourriez recevoir une erreur: phpize introuvable. Phpize est une commande utilisée pour créer un environnement de construction. Cette erreur peut apparaître lors de l’installation d’une extension pecl. Pour résoudre ce problème de commande phpize introuvable, l'utilisateur doit installer le paquet php5-dev. Pour l'installer entrez la commande:

 $ Sudo apt-get install php7.0-dev

Ensuite, dans le fichier php.ini qui se trouve dans le répertoire /etc/php/7.0/Apache2, ajoutez l’extension mongo db:

$ Sudo nano /etc/php/7.0/Apache2/php.ini 

Ajoutez la ligne suivante dans le fichier:

extension = mongo.so;

(Vous devrez peut-être spécifier l'emplacement exact du fichier. Dans mon cas, le fichier se trouvait dans /usr/lib/php/20151012/mongodb.so.)

Donc, la base de données mongo est installée avec son pilote.

3) Gardez maintenant à l’esprit que les classes mongo-php ont été modifiées. La plupart des ressources disponibles sur le réseau proposent des solutions utilisant d’anciennes classes, qui sont remplacées. Vous trouverez ci-dessous les liens auxquels vous pouvez vous référer:

http://php.net/manual/en/set.mongodb.php

http://zetcode.com/db/mongodbphp/

Voici quelques commandes pour les opérations de base de la base de données:

$mng = new MongoDB\Driver\Manager(); // Driver Object created

Pour insérer des données dans la base de données:

$bulk = new MongoDB\Driver\BulkWrite;

$doc = ["_id" => new MongoDB\BSON\ObjectID, "data" => $someData, "info" => $someInfo];

$bulk->insert($doc);

$mng->executeBulkWrite('dbName.collectionName', $bulk);

Pour récupérer des données:

$query = new MongoDB\Driver\Query([]); 

$rows = $mng->executeQuery("dbName.collectionName", $query);

foreach ($rows as $row) 
    {
         echo "$row->data - $row->info\n";
    }
6
Pransh Tiwari

ou pour php 7

Sudo apt-get install php7.0-mongodb
1
Albert s

J'utilise ceci sur mon Dockerfile:

echo 'deb http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list
echo 'deb-src http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list
curl -OL https://www.dotdeb.org/dotdeb.gpg \
    && apt-key add dotdeb.gpg \
    && rm dotdeb.gpg
apt-get update -y \
    && apt-get install -y \
        php7.0 \
        php7.0-mongodb \
0
MauricioOtta