web-dev-qa-db-ja.com

Mongodb PHP拡張機能をUbuntu 16.04 LTSにインストールする方法

Ubuntu 16.04 LTSを実行していますが、PHPでMongodbを使用します。このために私が試した

Sudo apt-get install php5-mongo

ubuntu 14.04 LTSにはこれで十分ですが、私は間違っていました。次のようなエラーメッセージが表示されます。

E: Unable to locate package php5-mongo

マシンOSをUbuntu 16.04 LTSにアップグレードしたばかりで、PHP 7.0.4mongodbを使用したかった。

これを解決するにはどうすればよいですか?

27
Vikash Kumar

Mongodb拡張機能をインストールするには、次のようにします。

Sudo apt-get install php-mongodb
52
Videonauth

今までに解決策を見つけたと思います。しかし、私はそれをどのようにしたかを共有したい:

8
chickenchilli

Ubuntu 16.04でPHPバージョン7.0を使用しています。 mongoドライバー/クライアントのインストールに関する詳細情報を提供しています。まず、mongodbを手動でインストールしてから、mongodb-phpドライバーをインストールしました。

1)mongo dbをインストールします。次のコマンドを入力します。

$ 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

Mongdbをサービスとして適切に起動するには、つまり、システムの起動時にMongodbを自動的に起動するには、次の手順に従います。

次のコマンドを入力して、/ etc/systemd/system /にファイルmongodb.serviceを作成します。

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

次の内容を貼り付けます:

[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

次に、次のコマンドを入力します。

$ Sudo systemctl start mongodb

$ Sudo systemctl enable mongodb

2)mongo-phpドライバーのインストール:

$ Sudo pecl install mongodb

また、phpize not foundというエラーが表示される場合があります。 Phpizeは、ビルド環境を作成するために使用されるコマンドです。このエラーは、pecl拡張機能のインストール時に表示される可能性があります。 phpizeコマンドが見つからないというこの問題を解決するには、ユーザーはphp5-devパッケージをインストールする必要があります。それをインストールするには、次のコマンドを入力します。

 $ Sudo apt-get install php7.0-dev

次に、/ etc/php/7.0/Apache2ディレクトリにあるphp.iniファイルに、mongo db拡張を追加します。

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

ファイルに次の行を追加します。

extension = mongo.so;

(ファイルの正確な場所を指定する必要があるかもしれません。私の場合、ファイルは/usr/lib/php/20151012/mongodb.soにありました。)

そのため、mongo dbはそのドライバーとともにインストールされます。

3)mongo-phpクラスが変更されたことに注意してください。ネットで利用可能なリソースのほとんどは、置き換えられた古いクラスを使用したソリューションを提供します。参照できるリンクは次のとおりです。

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

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

基本的なデータベース操作用のコマンドを次に示します。

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

データベースにデータを挿入するには:

$bulk = new MongoDB\Driver\BulkWrite;

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

$bulk->insert($doc);

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

データを取得する場合:

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

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

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

またはphp 7

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

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