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
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)
extension=mongodb.so
不要忘记重新加载Web服务器:
sudo systemctl reload apache2
而已.一切都应该有效!