2016-04-01 18 views
1

を失敗した私は、UbuntuのスタックにPHP7 + MongoDBの3.2をインストールしました:PHP7のMongoDBの認証が

にpeclにMongoDBをインストールします(これは> 5.99.99用の新しいドライバです)

また、私は最後のPHPパッケージを使用していmongodb/mongodbラッパーとして。

ですが、ユーザーの認証に問題があります。

new \MongoDB\Client('mongodb://root:[email protected]:27017'); 

それは認証機構により、ドライバーではなくもちろんSCRAM-SHA-1

の、認証はシェルのmongoクライアントでうまく動作(> 3.0で非推奨)MONGODB-CRとして認証しようとして失敗します。

mongo someip:27017/admin -u root -p "123456" 

質問は、私はどのようにphpドライバで認証メカニズムを指定できますか? (\MongoDB\Clientコンストラクタはいくつかの配列$driverOptions = []を受け入れます)、それを指定するオプションはありますか?

ありがとうございます!

答えて

2

最新のドライバを使用していることを確認してください。新しいデフォルトはSCRAM-SHA-1だったはずです。

私は環境:php7、ubuntu14,MongoDB v3.2.x,mongo-php-library =^1.0.0およびmongodb php driver v1.1.5の下でテストを行った。期待どおりに動作します。

$client = new MongoDB\Client("mongodb://user:[email protected]:port/admin?authMechanism=SCRAM-SHA-1"); 

あなたが使用している場合SCRAM-SHA-1を指定する必要はありませんが、また、作品:

require_once __DIR__ . "/vendor/autoload.php"; 
$client = new MongoDB\Client("mongodb://user:[email protected]:port/admin"); 
$collection = $client->selectCollection("databaseName", "collection"); 
$cursor = $collection->find(); 

foreach ($cursor as $document) { var_dump($document); } 

私はまた、例えば、URIでauthMechanismオプションをテストしてみました新しいPHPドライバ。 php --ri mongodbを実行すると、(v1.1.5の場合)と同様のものが表示されます。

mongodb 
mongodb support => enabled 
mongodb version => 1.1.5 
mongodb stability => stable 
libmongoc version => 1.3.3 
libbson version => 1.3.3 
関連する問題