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


27

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使用mongodbしたいと考えましたPHP 7.0.4

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


sudo apt-get install php7-mongoもこれを試してみましたが、肯定的な結果は得られませんでした
Vikash Kumar

php5-mongoを使用する場合は、これを試してくださいsudo add-apt-repository ppa:chris-lea/mongodb-drivers sudo apt-get update sudo apt-get install php5-mongo
-bhordupur

@bhordupurこのリポジトリは無効のようです。また、代わりにこれを答えにすることを検討しましたか?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
ビベックコディラ

1
@VivekKodiraいいえ、Vicky RがUbuntu 16.04 LTSを使用していたため、それを答えとして入れませんでした。デフォルトでは、このphp-mongodbの実行中にphp7.xがインストールされていました。私は彼が14歳から16歳まで来ていたのでコメントしましたが、それでも彼は私が上でコメントしたことをまだ使うことができました。これが私のコメントを答えとして入れなかった理由です。
ボードゥプル

回答:


52

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

sudo apt-get install php-mongodb

2
これはphp7の受け入れられた答えですか?ubuntu 16.04のこのコマンドは、php5.6 mongo noをインストールしますか?
リゲマー

2
@Ligemer 16.04にはデフォルトのPHPとしてphp7.0があるため、すべてのメタパッケージは前述の7.0バージョンをインストールします。
Videonauth

ああ、はい、リマインダーのおかげで、別のPPAからphp5.6もインストールされており、同じパッケージではないのでエラーになりました。mongoの一部のドキュメントでは、pecl拡張機能を使用するように記述されていますが、これは最終的に使用したものです。
リゲマー

1
パッケージをインストールした後、Apacheサーバーを再起動することを忘れないでください。
TheKarateKid

AWS Linux Ec2に同じコマンドを使用できますか?
151291


6

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";
    }

1

またはphp 7

sudo apt-get install php7.0-mongodb

我々はMongoDBのをインストールしましたが、エラーは次のようにブラウザ上に積載jumpset取得:エラー:MongoDBのPECL拡張モジュールをインストールまたは有効化されていません
shivashankarメートル

0

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 \
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.