无法连接到托管在其他服务器上的MongoDB-PHP

无法连接到托管在其他服务器上的MongoDB-PHP,php,mongodb,amazon-web-services,amazon-ec2,cloud,Php,Mongodb,Amazon Web Services,Amazon Ec2,Cloud,我创建了两个AWS实例,并为它们分配了两个不同的弹性IP。一个实例用于数据库服务器(托管在MongoDB中),另一个用于托管网站 我无法通过PHP代码连接到服务器。我的代码如下所示: try{ $connection = new Mongo('mongodb://107.21.230.121:27017'); } catch (MongoConnectionException $exception) { print_r($exception->getMessage(

我创建了两个AWS实例,并为它们分配了两个不同的弹性IP。一个实例用于数据库服务器(托管在MongoDB中),另一个用于托管网站

我无法通过PHP代码连接到服务器。我的代码如下所示:

try{
    $connection = new Mongo('mongodb://107.21.230.121:27017');
}
    catch (MongoConnectionException $exception)
{
    print_r($exception->getMessage());
}   
在我的网站上运行此代码时,出现以下错误:

“未能连接到:107.21.230.121:27017:0毫秒后超时。”

我已经检查了运行MongoDB的服务器。使用MongoShell,我还能够创建一些集合和文档


我尝试过各种策略,但都没有成功。有人能告诉我设置中的错误在哪里吗?

从对实例的快速且肮脏的nmap扫描判断,您似乎没有打开安全组中的端口(27017)。这需要在端口服务器上完成。

是否允许该主机连接到该数据库?防火墙设置?我没有使用任何防火墙。还没有限制任何用于连接的IP。默认情况下,afair MongoDB仅绑定到localhost默认设置为mongo仅允许localhost连接,因此您应该检查您的配置以允许其他主机连接。安装并尝试从应用程序服务器通过mongo shell连接。这将确认是否存在连接问题。我已尽一切努力打开端口。这就是我所尝试的全部:1。服务站mongod 2。vi/etc/mongod.conf(将我的第二个服务器ip添加到绑定ip)3。服务启动mongod 4。iptables输入-s-p tcp-m tcp--dport 27017-j ACCEPT仍然没有运行。我不是MongoDB的老手。只是从MySQL过渡到MongoDB,这会带来很大的伤害:(在AWS上的安全组中,您需要打开端口27107,这不在实例本身上,而是在ec2控制台上。