我正在尝试安装MongoDB PHP驱动程序,以便可以连接到另一台计算机上的MongoDB服务器。在AWS Linux上使用PHP 5.6。
我使用了sudo pecl install mongodb。最初,有几个关于依赖项的错误,但我添加了所有错误,然后它似乎已经安装没有任何错误。
然而,当加载phpinfo()时,我看不到任何对Mongo的引用。当我尝试运行时:
我得到了$connection = new MongoClient();
PHP Fatal error: Class 'MongoClient' not found in /var/www/html/mongo.php on line 3我确实在我的php.ini中放入了extension=mongodb.so,但这导致了另一个错误:
PHP Startup: Unable to load dynamic library '/usr/lib64/php/5.6/modules/mongodb.so' - /usr/lib64/php/5.6/modules/mongodb.so: undefined symbol: php_json_serializable_ce in Unknown on line 0这个错误似乎与json相对于MongoDB的加载顺序有关。但在我的例子中,MongoDB似乎根本没有加载,我不确定这是否适用于这里。
我希望能帮助你解释为什么这个方法不起作用。
发布于 2017-01-06 14:04:41
我曾经遇到过同样的情况,我从mongo开发人员那里得到了这个解决方案,如果你使用的是debian,你不需要把mongodb.so放在php.ini中,而是把它变成一个单独的模块
cat << EOF > /etc/php5/mods-available/mongodb.ini
; priority=99
extension=mongodb.so
EOF
php5enmod mongodb如果您使用的是fedora
echo "extension=mongodb.so" > /etc/php.d/50-mongodb.ini然后重新启动您的apache,它将正常工作。
发布于 2018-05-11 00:00:59
对我来说,在遵循了上面的建议之后,我仍然无法在phpinfo中看到mongo。我最终使用pecl卸载并重新安装了mongodb,并注意到make的输出末尾显示:
configuration option "php_ini" is not set to php.ini location接下来是:pecl config-set php_ini /etc/php.ini
然后:
sudo pecl uninstall mongodb
sudo pecl install mongodb
systemctl restart php-fpm
systemctl restart httpd在那之后,mongo在两个php -i中都显示了:
php -i|grep mongo
/etc/php.d/50-mongodb.ini
mongodb
libmongoc bundled version => 1.9.4
libmongoc SSL => enabled
libmongoc SSL library => OpenSSL
libmongoc crypto => enabled
libmongoc crypto library => libcrypto
libmongoc crypto system profile => disabled
libmongoc SASL => disabled
libmongoc compression => enabled
libmongoc compression snappy => disabled
libmongoc compression zlib => enabled
mongodb.debug => no value => no value和phpinfo:
http://1.2.3.4/phpinfo.php/
mongodb
MongoDB support enabled
MongoDB extension version 1.4.3
MongoDB extension stability stable
libbson bundled version 1.9.4
libmongoc bundled version 1.9.4
libmongoc SSL enabled
libmongoc SSL library OpenSSL
libmongoc crypto enabled
libmongoc crypto library libcrypto
libmongoc crypto system profile disabled
libmongoc SASL disabled
libmongoc compression enabled
libmongoc compression snappy disabled
libmongoc compression zlib enabled
Directive Local Value Master Value
mongodb.debug no value no value发布于 2017-01-06 13:52:04
长话短说,在PHP中使用MongoClient是不推荐的。( https://github.com/mongodb/mongo-php-driver/issues/300#issuecomment-210820288 )
您将希望使用$connection = new MongoDB\Driver\Manager();而不是$connection = new MongoClient();
希望这能有所帮助。
https://stackoverflow.com/questions/41499647
复制相似问题