wake-up-neo.com

Wie installiere ich die Mongodb PHP Erweiterung in Ubuntu 16.04 LTS

Ich verwende Ubuntu 16.04 LTS und möchte Mongodb mit PHP verwenden. Dafür habe ich versucht

Sudo apt-get install php5-mongo

das ist genug für Ubuntu 14.04 LTS wäre genug, aber ich habe mich geirrt. Ich erhalte folgende Fehlermeldung:

E: Unable to locate package php5-mongo

Ich habe gerade das Betriebssystem der Maschine auf Ubuntu 16.04 LTS aktualisiert und wollte mongodb mit PHP 7.0.4 verwenden.

Was kann ich tun, um das zu lösen?

27
Vikash Kumar

Gehen Sie wie folgt vor, um die Mongodb-Erweiterung zu installieren:

Sudo apt-get install php-mongodb
52
Videonauth

Ich bin sicher, Sie haben inzwischen eine Lösung gefunden. Ich möchte jedoch mitteilen, wie ich es gemacht habe:

8
chickenchilli

Ich benutze PHP Version 7.0 auf Ubuntu 16.04. Ich gebe eine detaillierte Information zur Installation des Mongo-Treibers/-Clients. Zuerst habe ich mongodb manuell installiert und dann den mongodb-php Treiber dafür.

1) mongo db installieren. Geben Sie die folgenden Befehle ein:

$ 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

Führen Sie die folgenden Schritte aus, um Mongdb als Dienst ordnungsgemäß zu starten, dh Mongodb beim Systemstart automatisch zu starten:

Erstellen Sie die Datei mongodb.service in/etc/systemd/system /, indem Sie den folgenden Befehl eingeben:

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

Fügen Sie den folgenden Inhalt ein:

[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

Geben Sie dann die folgenden Befehle ein:

$ Sudo systemctl start mongodb

$ Sudo systemctl enable mongodb

2) Installation des mongo-php Treibers:

$ Sudo pecl install mongodb

Außerdem erhalten Sie möglicherweise eine Fehlermeldung: phpize not found. Phpize ist ein Befehl, mit dem eine Build-Umgebung erstellt wird. Dieser Fehler kann zum Zeitpunkt der Installation einer PECL-Erweiterung auftreten. Um dieses Problem des nicht gefundenen Befehls phpize zu lösen, muss der Benutzer das Paket php5-dev installieren. Um es zu installieren, geben Sie den folgenden Befehl ein:

 $ Sudo apt-get install php7.0-dev

Fügen Sie dann in der Datei php.ini im Verzeichnis /etc/php/7.0/Apache2 die Erweiterung mongo db hinzu:

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

Fügen Sie der Datei die folgende Zeile hinzu:

extension = mongo.so;

(Möglicherweise müssen Sie den genauen Speicherort der Datei angeben. In meinem Fall befand sich die Datei in /usr/lib/php/20151012/mongodb.so.)

Die Mongo-Datenbank wird also zusammen mit dem Treiber installiert.

3) Denken Sie jetzt daran, dass die Mongo-PHP-Klassen geändert wurden. Die meisten verfügbaren Ressourcen im Netz bieten Lösungen mit alten Klassen, die ersetzt werden. Nachfolgend finden Sie die Links, auf die Sie verweisen können:

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

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

Hier sind einige Befehle für grundlegende Datenbankoperationen:

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

So fügen Sie Daten in die Datenbank ein:

$bulk = new MongoDB\Driver\BulkWrite;

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

$bulk->insert($doc);

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

Zum Abrufen von Daten:

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

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

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

oder für PHP 7

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

Ich benutze dies in meiner Docker-Datei:

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