Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB PHP驱动程序不适用于Linux AWS_Php_Mongodb - Fatal编程技术网

MongoDB PHP驱动程序不适用于Linux AWS

MongoDB PHP驱动程序不适用于Linux AWS,php,mongodb,Php,Mongodb,我正在尝试安装MongoDB PHP驱动程序,以便可以连接到另一台机器上的MongoDB服务器。在AWS Linux上使用PHP5.6 我使用了sudopecl安装mongodb。最初关于依赖项有几个错误,但我将它们全部添加到了一起,然后它似乎安装时没有任何错误 但是,在加载phpinfo()时,我没有看到任何对Mongo的引用。当我尝试跑步时: $connection=newmongoclient()我明白了 PHP Fatal error: Class 'MongoClient' not

我正在尝试安装MongoDB PHP驱动程序,以便可以连接到另一台机器上的MongoDB服务器。在AWS Linux上使用PHP5.6

我使用了
sudopecl安装mongodb
。最初关于依赖项有几个错误,但我将它们全部添加到了一起,然后它似乎安装时没有任何错误

但是,在加载
phpinfo()
时,我没有看到任何对Mongo的引用。当我尝试跑步时:

$connection=newmongoclient()我明白了

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似乎根本没有加载,我不确定这是否适用于这里


我很感激你能帮我解释为什么这不起作用

长话短说,不推荐使用MongoClient for PHP。()

而不是
$connection=new MongoClient()
你会想用
$connection=new MongoDB\Driver\Manager()


希望这有帮助。

我也遇到过同样的情况,我从mongo开发者那里得到了这个解决方案 您不需要将mongodb.so放在php.ini中,而是将其作为一个单独的模块 如果您使用的是debian

cat << EOF > /etc/php5/mods-available/mongodb.ini
; priority=99
extension=mongodb.so
EOF
php5enmod mongodb
然后重新启动apache
而且它会很好地工作。

对于我来说,在遵循了上面的圣人建议之后,我仍然无法在phpinfo中看到mongo。我最终求助于使用pecl卸载并重新安装mongodb,并在make的输出末尾注意到,它说:

configuration option "php_ini" is not set to php.ini location
随后:

然后:

之后,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

确保
extension=mongodb.so
extension=json.so
之后,我将
extension=mongodb.so
作为php.ini中的最后一行。我甚至没有看到
extension=json。所以你在phpinfo()中看到json部分了吗?是的。JSON部分在那里。尝试了一下,得到了
PHP致命错误:在/var/www/html/mongo.PHP中找不到类“MongoDB\Driver\Manager”
是否重新启动了所有相关服务?(阿帕奇等)是的,好几次了。甚至重新启动了server.Ah,显然是因为您的旧配置文件中有mongo.so行可能会抛出它。尝试删除该选项并使用新方法。没有区别。这里似乎有一些基本问题。这几乎就像我根本没有安装Mongo一样,尽管我安装了。就是这样!谢谢这两个命令为我真正修复了
systemctl restart php fpm
systemctl restart httpd
 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
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