2011-10-02 101 views
2

连接到MongoDB的远程主机上我有这样的网络配置(见链接 - http://s58.radikal.ru/i160/1110/4c/1c2c5d74edd0.jpg无法通过PHP

其中: 笔记本 - 包含的MongoDB + web项目的Apache + PHP + MongoDB的+ PHP驱动程序上的Zend(视窗)

路由器 - 虚拟站(192.168.5.23接口+ ipfw的上NAT)

natd.conf:

interface le0 
same_ports 
use_sockets 
redirect_port tcp 192.168.5.23:27017 27017 
redirect_port tcp 192.168.5.23:27017 27017 

ipfw的: 允许从任何任何

虚拟站2 - 仅包含mongodb的(无PHP中,apache的,或mongodb的PHP的驱动程序)

1 - 从笔记本平到MongoDB的主机和向后 - 作品。

2 - 壳虚拟mongodb的主机上:MONGO 192.168.5.20:27017 - 连接到笔记本电脑的mongodb的成功

3 - 试图从笔记本计算机连接到虚拟主机原因这样的误差:

C:\mongodb1.8.2\bin>mongo 192.168.9.21:27017 
MongoDB shell version: 1.8.2 
connecting to: 192.168.9.21:27017/test 
Sun Oct 02 22:31:14 Error: couldn't connect to server 192.168.9.21:27017 shell/mongo.js:81 
exception: connect failed 

4 - 尝试使用远程主机数据库中的PHP项目(www.vm.lcl):

an exception occured while bootstrapping 

connecting to vm-db1.lcl failed: Unknown error 
Stack Trace: 

#0 C:\www\vm-db1.lcl\library\Zirrk\Database\MongoConnection.php(16): Mongo->__construct('vm-db1.lcl') 

请给我建议 - 在什么方向我要寻找我的错误! 非常感谢!

回答

1

我已经在natd.conf

redirect_port tcp 192.168.5.23:27017 27017 

到 redirect_port TCP 192.168.5.23:27017 192.168.9.21:27017

变化规律解决这个问题,了解如何解决这个问题之前, ,我使用apache + php + mongo-php-driver(mongodb - 未安装)创建了虚拟网络(192.168.9.0/24)web-server(192.168.9.11),并尝试连接到192.168.9.21

$m = new Mongo("mongodb://192.168.9.21:27017"); 

这是没有意义的。我花了整整一天的时间在脑力激荡和谷歌搜索的信息,但仍然没有。 (连接到服务器时,错误处于暂停状态)。然后我休息了几个小时,并了解,在我的情况下,所有的流量都经过Freebsd下网关主机,并加入到natd.conf

redirect_port tcp 192.168.9.11:27017 192.168.9.21:27017 

重启网关服务器,它来上班!