Я пытаюсь настроить установку 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()
:
Для меня это похоже на то, что драйвер MongoDB загружен так, как должен, но мои скрипты жалуются, что они не могут найти класс Mongo
. Я создал небольшой скрипт, чтобы показать проблему:
<?php
if(class_exists('Mongo') || class_exists('MongoClient')) {
echo "EUREKA!";
} else {
echo "Still not loading...";
}
?>
При запуске скрипта он возвращает Still not loading...
У меня закончились идеи, есть ли кто-нибудь, кто мог бы вести меня в правильном направлении?
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" среди них нет.