PHP драйвер MongoDB загружен, но класс не найден

1

Я пытаюсь настроить установку PHP 7.1.6.1 с помощью драйвера Mongo для PHP. (v1.2.9) Однако класс Mongo не загружен, хотя phpinfo() сообщает мне, что расширение mongo загружено.

Вот что я сделал:

pecl install mongodb
echo 'extension=mongodb.so' > /etc/php/7.1/fpm/conf.d/20-mongodb.ini
serivce php7.1-fpm restart
service nginx restart

Это устанавливает расширение PHP MongoDB, загружает его, а затем перезапускает как FPM, так и Nginx. Когда я запускаю php -i | grep mongo php -i | grep mongo Я получаю следующий результат:

/etc/php/7.1/cli/conf.d/20-mongodb.ini,
mongodb
libmongoc bundled version => 1.5.5
libmongoc SSL => enabled
libmongoc SSL library => OpenSSL
libmongoc crypto => enabled
libmongoc crypto library => libcrypto
libmongoc crypto system profile => disabled
libmongoc SASL => disabled
mongodb.debug => no value => no value

Вот скриншот phpinfo(): Изображение 174551

Для меня это похоже на то, что драйвер MongoDB загружен так, как должен, но мои скрипты жалуются, что они не могут найти класс Mongo. Я создал небольшой скрипт, чтобы показать проблему:

<?php
    if(class_exists('Mongo') || class_exists('MongoClient')) {
        echo "EUREKA!";
    } else {
        echo "Still not loading...";
}
?>

При запуске скрипта он возвращает Still not loading... У меня закончились идеи, есть ли кто-нибудь, кто мог бы вести меня в правильном направлении?

Теги:
nginx
pear

1 ответ

2
Лучший ответ

https://github.com/mongodb/mongo-php-driver говорит:

Обратите внимание, что новые драйверы HHVM и PHP реализуют другой API из старого драйвера по адресу http://pecl.php.net/package/mongo; поэтому существующие библиотеки, использующие устаревший драйвер (например, Doctrine MongoDB ODM), не будут работать с новыми драйверами.

Список классов находится по адресу http://docs.php.net/manual/en/set.mongodb.php - "Монго" и "MongoClient" среди них нет.

  • 0
    Должно быть, это упустили из виду в документации. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню