Исключение 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. Расширение 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());

?>

Что означает «провод» в этом контексте, и есть ли у кого-нибудь решение этой проблемы?

3

Решение

У меня проблема с 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

Вот и все. Все должно работать!

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]