MongoDB PHP库 - 代码在终端中工作,但不在浏览器上工作

时间:2018-02-10 07:30:33

标签: php mongodb mongodb-php

我已按照http://php.net/manual/en/mongodb.installation.pecl.php上提供的官方文档使用pecl安装了MongoDB PHP库

我通过mongo shell创建了一个名为'ma'的集合,其中包含两个文档'd1'和'd2'。

我正在尝试通过此文件连接到d1:connect.php

<?php
require_once __DIR__ . "/vendor/autoload.php";
$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->ma->d1;
echo "Done\n";
echo $collection;
?>

connect.php在我的终端上运行并提供此输出:

$ php connect.php
Done
ma.d1

但是在浏览器上它会出现此错误:此页面无效 localhost目前无法处理此请求。 HTTP ERROR 500

我的机器是64位Ubuntu 14.04 LTS。 PHP版本:5.5.9。 MongoDB shell和服务器版本:3.6.2。 Apache服务器版本:2.4.7。

我确信驱动程序安装正确,因为我得到了这个:

$ php --ri mongodb | grep version
MongoDB extension version => 1.4.0
libbson bundled version => 1.9.2
libmongoc bundled version => 1.9.2

我是这个司机的新手。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您是否在apache使用的php.ini中添加了mongodb.so扩展指令?

见这里:http://php.net/manual/en/mongodb.installation.manual.php

答案 1 :(得分:0)

将extension = mongodb.so添加到php配置文件(在我的情况下是/etc/php5/cli/php.ini)之后,你必须重新启动Apache服务器。

sudo killall apache2
sudo service apache2 restart

另外,不确定这是与MongoDB有关还是仅与Apache有关,但我在重启时遇到此错误:“apache2:无法使用127.0.1.1可靠地确定服务器的完全限定域名。设置'ServerName'全局指令抑制此消息。“

所以我按照这个答案:https://askubuntu.com/a/256018

最后,使用此代码确保加载扩展名:

<?php
echo extension_loaded("mongodb") ? "loaded\n" : "not loaded\n";
?>