gpt4 book ai didi

mongodb - 未捕获的异常 'MongoConnectionException'

转载 作者:可可西里 更新时间:2023-11-01 09:56:40 25 4
gpt4 key购买 nike

Fatal error: Uncaught exception 'MongoConnectionException' with message 
'Failed to connect to: localhost:27017: Permission denied' in
/var/www/html/test.php:8 Stack trace: #0 /var/www/html/test.php(8):
MongoClient->__construct() #1 {main} thrown in /var/www/html/test.php
on line 8

嗨,Mongo 专家...

我是一名想要试用 MongoDB 的开发人员。于是在测试机(Dell E520 Intel Dual Core 4GB Ram)上安装了centoOS 6.5 64bit,安装了PHP(Apache已经存在)。

然后安装MongoDB(yum install mongo-10gen mongo-10gen-server),然后安装“pecl install mongo”(安装ok:channel://pecl.php.net/mongo-1.4.5),添加extension= mongo.so 到 php.ini。

为了安装 pecl,我安装了一些其他东西,比如 C++ 编译器和 php-pear。 php5-dev 和 php5-cli 在 yum 中不可用,所以安装了 php-devel 和 php-cli(安装的版本是 php-devel-5.3.3-27.el6_5.x86_64 和 php-cli-5.3.3-27.el6_5 .x86_64

我关闭了 iptables 防火墙。从 shell 运行 mongo --host localhost:27017 & 连接没有问题

[root@localhost ~]# mongo --host localhost:27017
MongoDB shell version: 2.4.8
connecting to: localhost:27017/test
>

这些是test.php的内容

<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

// connect
$m = new MongoClient();
//$m = new MongoClient("mongodb://localhost:27017");

// select a database
$db = $m->comedy;

// select a collection (analogous to a relational database's table)
$collection = $db->cartoons;

// add a record
$document = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );
$collection->insert($document);

// add another record, with a different "shape"
$document = array( "title" => "XKCD", "online" => true );
$collection->insert($document);

// find everything in the collection
$cursor = $collection->find();

// iterate through the results
foreach ($cursor as $document) {
echo $document["title"] . "\n";
}
?>

如你所见,我都试过了$m = new MongoClient(); & $m = new MongoClient("mongodb://localhost:27017");

但是我得到了同样的错误。我哪里错了?

最佳答案

此问题记录在 http://ca3.php.net/manual/en/mongo.installation.php#mongo.installation.fedora

红帽、Fedora 和 CentOS:

这些系统上的默认 Apache 设置不允许请求建立网络连接,这意味着驱动程序在尝试连接到数据库时会收到“权限被拒绝”错误。如果遇到这种情况,请尝试运行:

$/usr/sbin/setsebool -P httpd_can_network_connect 1

然后重启Apache。 (这个问题也发生在 SELinux 上。)

感谢大家的支持!

希望这篇文章能帮助一些人避免绕圈子!

关于mongodb - 未捕获的异常 'MongoConnectionException',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20954985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com