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. Установлено расширение MongoDB для PHP.
Имею следующее:
<?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());
?>
Что в этом контексте означает «провод» и есть ли у кого-нибудь решение этой проблемы?
2 ответа
У меня проблема с Linux Mint 19 (думаю, у Ubuntu 18+ может быть такая же проблема):
Сервер с IP: 27017 сообщает о версии 2, но для этой версии libmongoc требуется не менее 3 (MongoDB 3.0)
Как говорится в сообщении - версия драйвера сервера и моя разные. Это произошло потому, что я установил драйвер php mongo с помощью команды:
sudo apt-get install php7.2-mongodb
РЕШЕНИЕ заключалось в полном удалении драйвера php mongo:
sudo apt-get remove --auto-remove php-mongodb
А затем установите php-mongodb из расширения Pecl mongodb php:
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
Не забудьте перезагрузить веб-сервер:
sudo systemctl reload apache2
Вот и все. Все должно работать!
У меня есть Raspberry Pi 3B с версией mongo. Он запускает более старую версию MongoDB, поэтому я нашел такую же старую версию pymongo, и она сработала.
mongo --version
MongoDB shell version: 2.4.14
min_wire_version
был добавлен через некоторое время после выпуска Mongo 2.4.14, поэтому я просто установил драйверы pymongo, которые были такими же старыми.
pip install pymongo==2.4.2
у меня сработало.
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.