PHP连接mongodb socket失败.处理步骤


php failed to connect to mongodb socket

刚刚用nginx、php-fpm和mongodb安装了一个新的ubuntu 13.04开发服务器。下面这行代码杀死了我所有在ubuntu 12.10生产服务器上运行良好的脚本

$m = new MongoClient("mongodb://user:pass@/tmp/mongodb-27017.sock/database");
误差

警告: MongoClient::__construct(): php_network_getaddresses:getaddrinfo失败:名称或服务不知道/var/www/app/php/db.php 4行

致命错误: Uncaught exception ' monconnectionexception '提示"连接到/tmp/mongodb-27017.sock:0失败"。php_network_getaddresses: getaddrinfo failed:名称或服务不存在已知' in/var/www/app/php/db.php:4堆栈跟踪:

<标题> 0/var/www/app/php/db.php (4): MongoClient→__construct("mongodb://app…")<标题> 1/var/www/app/admin/loggedin.php(3):要求(/var/www/app…)<标题> 2/var/www/app/admin/index.php(1):要求(/var/www/app…)<标题> 3{主要}扔在/var/www/app/php/db.php 4行

我已经玩弄这个一天半了,还是没弄明白。它的工作,当我连接到本地主机,但我真的更喜欢套接字。什么好主意吗?

当通过Unix域套接字连接时,PHP驱动程序不支持将凭据作为URI的一部分传入。

你需要在$options数组中传递用户名和密码(第二个参数)

Ubuntu 14.04, Php 5.59, MongoDB shell版本:2.4.9

我通过传递以下命令使我的程序工作:

我必须将连接从$m = new Mongo(); // connect更改为$m = new Mongo("mongodb://127.0.0.1"); // connect

由于某种原因,似乎/etc/hosts文件停止被称为localhost为127.0.0.1,这是抛出默认的mongodb连接器,所以我必须明确。叹息。