Comment installer l'extension PHP Mongodb dans Ubuntu 16.04 LTS


27

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 j'avais tort. 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 LTSet je voulais l'utiliser mongodbavec PHP 7.0.4.

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


J'avais essayé sudo apt-get install php7-mongoaussi mais je n'ai pas obtenu de résultat positif
Vikash Kumar

si vous voulez avec php5-mongo alors essayez cecisudo add-apt-repository ppa:chris-lea/mongodb-drivers sudo apt-get update sudo apt-get install php5-mongo
bhordupur

@bhordupur ce référentiel semble invalide. De plus, avez-vous envisagé d'en faire une réponse à la place? W: The repository 'http://ppa.launchpad.net/chris-lea/mongodb-drivers/ubuntu xenial Release' does not have a Release file. N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use. N: See apt-secure(8) manpage for repository creation and user configuration details. E: Failed to fetch http://ppa.launchpad.net/chris-lea/mongodb-drivers/ubuntu/dists/xenial/main/binary-amd64/Packages 404 Not Found
Vivek Kodira

1
@VivekKodira Non, je n'ai pas mis cela comme réponse parce que Vicky R utilisait Ubuntu 16.04 LTS où par défaut php7.x était installé lors de l'exécution de ce php-mongodb. J'ai fait remarquer qu'en raison de sa venue de 14 à 16 ans, il pouvait toujours utiliser ce que j'ai commenté ci-dessus. C'est pourquoi je n'ai pas mis mon commentaire comme réponse.
bhordupur

Réponses:


52

Pour installer l'extension mongodb, procédez comme suit:

sudo apt-get install php-mongodb

2
Comment est-ce la réponse acceptée pour php7? Cette commande sur ubuntu 16.04 installera php5.6 mongo non?
Ligemer

2
@Ligemer 16.04 a php7.0 comme PHP par défaut, donc tous les méta packages installent la version 7.0 desdits.
Videonauth

ahh oui, merci pour le rappel, j'ai également installé php5.6 à partir d'un autre ppa et ce ne sont pas les mêmes paquets qui m'ont conduit à l'erreur. Une documentation de mongo dit d'utiliser l'extension pecl, ce que j'ai finalement utilisé.
Ligemer

1
N'oubliez pas de redémarrer le serveur Apache après avoir installé le package.
TheKarateKid

Puis-je utiliser la même commande pour AWS Linux Ec2?
151291


6

J'utilise php version 7.0 sur Ubuntu 16.04. Je donne des informations détaillées sur l'installation du pilote / client mongo. J'ai d'abord installé manuellement mongodb puis le pilote mongodb-php pour cela.

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

Pour lancer correctement Mongdb en tant que service, c'est-à-dire 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:

$ 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

Saisissez ensuite les commandes suivantes:

$ sudo systemctl start mongodb

$ sudo systemctl enable mongodb

2) Installation du pilote mongo-php:

$ sudo pecl install mongodb

Vous pourriez également recevoir une erreur: phpize introuvable. Phpize est une commande qui est utilisée pour créer un environnement de construction. Cette erreur peut apparaître au moment de l'installation de n'importe quelle extension pecl. Pour résoudre ce problème de la commande phpize introuvable, l'utilisateur doit installer le package 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.)

Ainsi, le mongo db est installé avec son pilote.

3) Gardez maintenant à l'esprit que les classes de mongo-php ont été modifiées. La plupart des ressources disponibles sur le net proposent des solutions utilisant d'anciennes classes qui sont remplacées. Voici 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";
    }

1

ou pour php 7

sudo apt-get install php7.0-mongodb

nous avons installé mongodb mais l'erreur lors du chargement du jumpset sur le navigateur comme: Erreur: L'extension MongoDB PECL n'a pas été installée ou activée
shivashankar m

0

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 \
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.