Composer はそこで正しい答えを示しています。間違ったライブラリを使用しています。 --ignore-platform-reqs を使用しないでください。強制的にインストールすることもできます。次に行う必要があるのは、どのライブラリが自分に合っているかを確認することです。 php バージョン。書く
<ブロック引用>php --バージョン
どれを使っているかわからない場合。出力は次のようになります:
PHP 5.6.30-0+deb8u1 (cli) (built: Feb 8 2017 09:49:20)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
以下のリストでお使いのバージョンを見つけてください。
mongodb の説明を参照してください:PHP-Driver for mongodb
pecl にアクセスして、php のバージョン番号に合ったバージョンをダウンロードしてください。
あなたの場合 (PHP5.6):
$ wget https://pecl.php.net/get/mongodb-1.2.11.tgz
$ tar -xvzf mongodb-1.2.11.tgz
$ cd mongodb-1.2.11/
$ phpize
$ ./configure
$ make all -j 5
$ sudo make install
これで動作するはずです。
このコードで php mongodb 接続をテストできます (ObjectId を検索します):
<?php
# filename ConnectMongo.php
require_once __DIR__ . "/vendor/autoload.php";
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// connect to mongodb
$manager = new MongoDB\Driver\Manager('mongodb://username:[email protected]');
$id = new \MongoDB\BSON\ObjectId("5a0c8e2362eb6404c2f10032");
$filter = ['_id' => $id];
$options = [];
$query = new \MongoDB\Driver\Query($filter, $options);
$rows = $manager->executeQuery('db.collection', $query);
foreach ($rows as $document) {
var_dump($document);
}
?>
ターミナルでこれを書いて接続をテストします:
<ブロック引用>$ php ConnectMongo.php
composer を使用してインストールすることも確認してください。同じエラーが発生することはもうありません。