У меня была похожая проблема, которую я решил через несколько часов.Надеюсь, это сэкономит другим время.Я на macOS Sierra.
Фон
Я запустил sudo pecl install mongodb
, чтобы обновить драйвер Монго.Мне не нужно было добавлять расширение в php.ini, потому что оно было там от более старой версии.
PHP отказывался распознавать обновленный драйвер Монго.Я также получил бы Фатальную ошибку: вызов неопределенной ... isDefault () ошибка при попытке выполнить запросы.
Исправление
Шаг 1
Найти полный путь нового расширения драйвера mongodb.
Есть несколько способов сделать это.
Обновление драйвера (то есть sudo pecl install mongodb
) приведет к выводу что-то вроде:
Установка '/usr/local/Cellar/php71/7.1.2_13/lib/php/extensions/no-debug-non-zts-20160303/mongodb.so'
В качестве альтернативы вы можете найти его: find / -name "mongodb.so"
на Mac или Linux.
Шаг 2
Найдите файл php.ini.Опять есть несколько разных способов.Повторение phpinfo () в php скажет вам, где он находится.В качестве альтернативы вы можете запустить find / -name php.ini
.
Шахта была расположена в /usr/local/etc/php/7.1/php.ini
Шаг 3
Редактировать ваш php.INI-файл и замените
extension = "mongodb.so"
на путь к новому расширению:
extension = "/usr/local/Cellar/php71/7.1.2_13/lib/php/extensions/no-debug-non-zts-20160303/mongodb.so"
Шаг 4
Сохраните и повторите ваш запрос.
Подробнее
В моем случае php.ini фактически включал расширение mongo из /usr/local/etc/php/7.1/conf.d/ext-mongodb.ini, так что это был файл, который я редактировал.Однако я успешно протестировал оба решения.