0
私は、従来のmongo php 1.6.10ドライバと1.2.5 mongodb phpドライバの両方をインストールしています。 Debian 8ではPHPのバージョンが5.6.29です。php mongodb with x509
レガシードライバとサポートされているドライバはどちらも基本認証情報を使って接続できます。
レガシードライバのみがx509証明書を使用して接続できます。
サポートされているドライバは、コレクションに対して単純なfindOneを実行しようとすると、次の例外が発生します。
私はここでのMongoDBドライバ http://php.net/manual/en/set.mongodb.phpためのMongoDBクライアントライブラリを使用しています
PHP Fatal error: Uncaught exception 'MongoDB\Driver\Exception\RuntimeException' with message 'SCRAM Failure: invalid salt length of 0 in sasl step2'
は、私は答えはURI文字列内authMechanism
オプションを渡すことです
<?php
$server = 'mongodb://uat-a:27017,uat-b:27017,uat-c:27017';
$options = [
'replicaSet' => 'rs-uat',
'username' => 'CN=my-user,OU=user,O=NA,L=Place,ST=State,C=GB',
'authMechanism' => 'MONGODB-X509',
'authSource' => '$external',
'ssl' => true,
'connect' => true,
];
$driverOptions = [
'context' => stream_context_create(
[
'ssl' => [
'local_cert' => '/etc/local-cert.pem',
'cafile' => '/etc/cafile.pem',
],
]
),
];
$database = 'uatdata';
$client = new MongoDB\Client($server, $options, $driverOptions);
$db = $client->selectDatabase($database);
$doc = $db->selectCollection('errors')->findOne([], ['projection' => ['timestamp' => 1, 'uri' => 1]]);