Исключение MongoDB: сервер сообщает о проводной версии 0, но для версии libmongoc требуется как минимум 3 - PullRequest
0 голосов
/ 05 октября 2018
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());

?>

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

1 Ответ

0 голосов
/ 18 октября 2018

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

sudo pecl install mongodb-1.4.4

( Если вы столкнетесь с ошибкой pecl: command not found, просто установите пакет PEAR, чтобы использовать pecl installer. sudo apt-get update && sudo apt-get install php-pear)

После этого добавьте следующую строку в ваш php.ini файл:

extension=mongodb.so

Не забудьте перезагрузить веб-сервер:

sudo systemctl reload apache2

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

...