已加载MongoDB PHP驱动程序,但无法找到类

时间:2017-06-19 12:19:37

标签: php mongodb nginx pear

我尝试使用this discussion about casting the result of malloc设置PHP 7.1.6.1安装但是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

这将安装MongoDB PHP扩展,加载它然后重新启动FPM和Nginx。当我运行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()的屏幕截图: Mongo driver for PHP. (v1.2.9)

对我而言,看起来像MongoDB驱动程序应该加载,但我的脚本抱怨他们无法找到Mongo类。我已经创建了一个小脚本来显示问题:

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

运行脚本时,它返回Still not loading...。我已经没有想法,有没有人可以指导我朝着正确的方向前进?

1 个答案:

答案 0 :(得分:2)

https://github.com/mongodb/mongo-php-driver说:

  

请注意,新的HHVM和PHP驱动程序在http://pecl.php.net/package/mongo处实现了与旧版驱动程序不同的API;因此,使用旧驱动程序的现有库(例如Doctrine MongoDB的ODM)将无法与新驱动程序一起使用。

课程列表位于http://docs.php.net/manual/en/set.mongodb.php - &#34; Mongo&#34;和#34; MongoClient&#34;不属于他们之中。