微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

而已.一切都应该有效!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐