2011-10-02 143 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 

重啓網關服務器,它來上班!