3

mongoサーバーに接続しようとすると、次のエラーが発生します。

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

接続文字列は次のようになります。

$conn = new Mongo("mongodb://XXXX:XXXX@XXX.member0.mongohq.com: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/PHP5.3.5-1ubuntu7.11を実行しています

誰かが以前にこれに飽き飽きしている、またはいくつかのガイダンスを提供することができますか?ありがとう。

4

1 に答える 1

0

どのバージョンのMongophpライブラリを使用していますか?バージョン1.2.12を使用して、次のような簡単なテストを行いました。

<?php

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

$hosts = $mongo->getHosts();

var_dump( $hosts );
?>

全く問題ありませんでした。バージョン1.0.9に戻るリクエストPHP-121以降、phpドライバーによるReplicaSetサポートを利用できます。

質問への回答をより具体的にするために、mongophpドライバーは接続ラッパーを使用しません。接続パーサーがあります。コード自体でより詳細な情報を見つけることができます: parser.c

PS:あなたのubuntuバージョンは少し古いです!2007年10月にリリースされ、2009年4月にEOLに到達しました。

于 2012-11-06T11:10:50.700 に答える