2012-10-28 26 views
3

我得到尝试连接到一个蒙戈服务器时,这样的错误:Mongo/PHP包装错误 - 我如何得到包装工作?

Unable to find the wrapper "mongodb" - did you forget to enable it when you configured PHP? 

连接字符串看起来是这样的:

$conn = new Mongo("mongodb://XXXX:[email protected]:10021/XXX",array("replicaSet" => 'rsname')); 

我试图找出qhat包装是可利用的使用:

var_dump(stream_get_wrappers()); 

,并得到如下:

array 
    0 => string 'https' (length=5) 
    1 => string 'ftps' (length=4) 
    2 => string 'compress.zlib' (length=13) 
    3 => string 'compress.bzip2' (length=14) 
    4 => string 'php' (length=3) 
    5 => string 'file' (length=4) 
    6 => string 'glob' (length=4) 
    7 => string 'data' (length=4) 
    8 => string 'http' (length=4) 
    9 => string 'ftp' (length=3) 
    10 => string 'phar' (length=4) 
    11 => string 'zip' (length=3) 
    12 => string 'ssh2.shell' (length=10) 
    13 => string 'ssh2.exec' (length=9) 
    14 => string 'ssh2.tunnel' (length=11) 
    15 => string 'ssh2.scp' (length=8) 
    16 => string 'ssh2.sftp' (length=9) 

我检查了conf.d文件夹,它们似乎都是为了形成我所能看到的,所以我不确定我需要做什么来允许我使用包装器进行连接,例如在php文档示例中显示。

我运行的nginx/PHP 5.3.5-1ubuntu7.11

哈人delat与在此之前,还是能够提供一些指导?谢谢。

+0

*“无法找到包装器”mongodb“ - 您是否忘记在配置PHP时启用它?”*您对该问题的回答是什么? – hakre

+0

我不确定是否是我的回答:)我已经试过寻找无处不在,以了解如何安装它,并且我还没有找到答案。我想这也是我的问题的一部分。我如何启用包装? – GoldieNZ

+0

有没有这样的流包装称为'mongodb'。代码中的连接字符串看起来很好。你在使用Zend Framework吗?检查此:https://github.com/zendframework/zf2/issues/2446 - 请将您的问题的信息添加到哪个文件和一行代码给出的错误。 – hakre

回答

0

您正在使用哪个版本的Mongo php库? 我做了一个简单的测试像这样使用1.2.12版本:

<?php 

$mongo = new Mongo('mongodb://host1.local:27019,host2.local:27020', array("replicaSet"=>'aaa')); 

$hosts = $mongo->getHosts(); 

var_dump($hosts); 
?> 

,并获得绝对没问题。 通过PHP驱动ReplicaSet支持是因为要求PHP-121提供可追溯到1.0.9版本

更具体的回答你的问题,蒙戈PHP驱动程序不使用连接包装。它有一个连接解析器。您可以在代码本身中找到更多详细信息: parser.c

PS:您的ubuntu版本有点旧!于2007年10月发布,并于2009年4月达到EOL。

+0

我使用的是mongo驱动程序的最新beta版本,是我尝试过的一个步骤,以防与我的驱动程序有关。 – GoldieNZ

+0

我不知道我的Ubuntu是老.. DISTRIB_ID = Ubuntu的 DISTRIB_RELEASE = 11.04 DISTRIB_CODENAME =整洁的 DISTRIB_DESCRIPTION =“Ubuntu的11.04” – GoldieNZ

+0

我可能会尝试像什么的Kohana之外你一个例子可能是感人。感谢您的建议! – GoldieNZ