Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用mongo php ext连接mongo数据库时超时_Php_Mongodb_Lxc - Fatal编程技术网

使用mongo php ext连接mongo数据库时超时

使用mongo php ext连接mongo数据库时超时,php,mongodb,lxc,Php,Mongodb,Lxc,使用Ubuntu 12.04和php 5.6下的mongo php ext连接MongoDB数据库时超时 我正在使用 最新的Apache2.4 Ubuntu 12.04 PHP5.6和mongo ext版本1.6.14 MongoDB v3.4在lxc容器中运行 问题是当我连接到mongo数据库时 我正在使用此连接字符串: mongodb://myDbUser:passW0rT@0.0.0.0:27020/myDb (密码、数据库和地址已更改) 我已经验证安装了php mongo ext,代

使用Ubuntu 12.04和php 5.6下的mongo php ext连接MongoDB数据库时超时

我正在使用

  • 最新的Apache2.4
  • Ubuntu 12.04
  • PHP5.6和mongo ext版本1.6.14
  • MongoDB v3.4在lxc容器中运行
问题是当我连接到mongo数据库时

我正在使用此连接字符串:

mongodb://myDbUser:passW0rT@0.0.0.0:27020/myDb

(密码、数据库和地址已更改)

我已经验证安装了php mongo ext,代码如下:

echo扩展插件加载(“mongo”)?“已加载”:“未加载\n”//印好了。
如果(类_存在('\MongoClient')){
echo“是Mongo客户端”。“\n”//这是打印的
}
否则{
回显“无Mongo客户端”。“\n”;
}
试一试{
$client=新的MongoClient('mongodb://myDbUser:passW0rT@0.0.0.0:27020/myDb',[]);
}捕获(例外$ex){
echo$ex->getMessage();//打印无法连接到:0.0.0.0:27020:连接超时
}
更奇怪的是,我可以使用连接到此数据库,除此之外,我还可以通过在我的计算机上运行的本地服务器连接到此数据库(Win 10)

当我使用security.authorization设置为enabled且无差异设置为disabled时,也会出现此问题–然后我使用dsnmongodb://0.0.0.0:27020 不幸的是,当我使用www(安装mongo数据库的服务器上的域)输入web地址时,服务器的响应总是出现超时错误

这可能是一个线索,安装mongo的服务器是作为容器运行的服务器,这意味着我必须添加端口号来连接,例如通过ssh


我甚至将服务器从ngix改为apache,问题并没有消失。

您使用0.0.0.0的方式看起来是错误的;您正在尝试连接到本地计算机上的mongodb进程吗?如果是这样的话,我想您应该使用127.0.0.1。是的,到本地机器,但是这台机器作为容器工作,而不是作为具有正常ip访问的机器。我还需要提供连接端口。但我再次检查了它是否适用于127.0.0.1:27020,但行为略有不同。现在是没有滞后和反应是立即的。消息是:未能连接到:127.0.0.1:27020:连接被拒绝容器的类型为lxc我应该添加。非常感谢您的回复!听起来您可能需要检查lxc端口配置?谢谢您的帮助!我用0.0.0.0来隐藏真正的IP地址@文斯:你可以简单地添加你以前的评论作为这个问题的答案。解决方案不是使用127.0.0.1:27020(27020是mongoDB的端口),而是简单地使用127.0.0.1,我之前认为我必须添加端口,因为它不是默认值,比如:80,然后我想,一旦我存在并删除了端口,就可以了。刷新和什么?它起作用了!我很高兴你的帮助。所以写一个答案,我会把它标记为这个问题的解决方案。再次感谢您!解决方案:mongodb://myDbUser:passW0rT@127.0.0.1/myDb