我在连接我的php客户端到我的mongodb服务器面临一个问题。
基本上,我在我的服务器上安装了MongoDB(托管在美国),当我通过ssh连接到它时,我可以在本地连接到它。
但是我不能从我的php客户端远程连接到这个服务器,这里是我得到的错误:
致命错误:未捕获的异常'MongoConnectionException'伴有消息'Failed to connect to: xxx.xxx.xxx. xxx.xxx.xxx. '。在/var/www/pages/news.php:9堆栈跟踪:#0/var/www/pages/news.php(9): MongoClient->__construct('mongodb://xxx.xxx…')#1 {main}抛出在/var/www/pages/news.php第9行
我使用这个是为了从我的php客户端创建一个连接:
$m = new MongoClient("mongodb://xxx.xxx.xxx.xxx");
我的远程服务器是Ubuntu 12.04,我已经在iptables中添加了INPUT和OUTPUT规则,以允许端口27017的流量。
我真的不知道问题从何而来?(我没有添加任何身份验证凭证到我的mongodb实例,这是一个新的测试目的)。
如果有人有同样的问题,并找到了解决方案,这可能是有帮助的,谢谢!
找到问题了:
我输入这个命令是为了显示侦听服务和它们对应的端口:
netstat -anltp | grep "LISTEN"
我看到SSH正在监听IP: 0.0.0.0但是mongod正在监听本地接口127.0.0.1
我只需要更新mongodb配置文件在这里:
/etc/mongodb.conf,设置参数"bind_ip"为:0.0.0.0并取消"port"字段的注释,使用默认值:27017。
结果,现在我可以从客户机连接到服务器上的mongod实例。