php – MongoDB例外:服务器报告线路版本0,但libmongoc版本至少需要3

Fatal error: Uncaught MongoDB\Driver\Exception\ConnectionException: Server at localhost:27017 reports wire version 0, but this version of libmongoc requires at least 3 (MongoDB 3.0)

我有PHP 7.0.13,MAMP和MongoDB.已安装PHP的MongoDB扩展.

我有以下内容

<?PHP

ini_set('display_errors', 'On');
require 'vendor/autoload.PHP';
var_dump(extension_loaded('mongodb'));
echo PHPversion('mongodb')."\n";

$m = new MongoDB\Driver\Manager("mongodb://localhost:27017");

// Query Class
$query = new MongoDB\Driver\Query(array('age' => 30));

// Output of the executeQuery will be object of MongoDB\Driver\Cursor class
$cursor = $m->executeQuery('testDb.testColl', $query);

// Convert cursor to Array and print result
print_r($cursor->toArray());

?>

在这种情况下,’wire’指的是什么,有没有人有解决这个问题的方法

解决方法:

我在Linux Mint 19上遇到了问题(认为Ubuntu 18可能有同样的问题):

Server at IP:27017 reports wire version 2, but this version of libmongoc requires at least 3 (MongoDB 3.0)

正如消息所说 – 服务器驱动程序版本和我的一个是不同的.
发生这种情况是因为我使用以下命令安装了PHP mongo驱动程序:

sudo apt-get install PHP7.2-mongodb

解决方案是完全卸载PHP mongo驱动程序:

sudo apt-get remove --auto-remove PHP-mongodb

然后从Pecl mongodb php extension安装PHP-mongodb:

sudo pecl install mongodb-1.4.4

(如果碰到错误pecl:command not found,只需安装PEAR包以便使用pecl安装程序.sudo apt-get update&& sudo apt-get install PHP-pear)

之后,在PHP.ini文件添加下一行:

extension=mongodb.so

不要忘记重新加载Web服务器:

sudo systemctl reload apache2

而已.一切都应该有效!

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...