Php 如何使用laravel连接到Amazon密钥空间(Cassandra)?
我正在尝试连接到amazon密钥空间中托管的Cassandra,每个连接上都需要包含SSL证书 我已经安装了驱动程序,连接成功,但是身份验证失败,因为我缺少证书 我尝试了以下包装,但没有一个包含配置SSL证书的参数: sonvq/laravel cassandra 福伊塔德/拉韦尔卡桑德拉 库贝特奇/拉卡萨 在我的config/database.php文件中,我配置了以下内容,我猜证书在“options”参数中,但它不起作用:Php 如何使用laravel连接到Amazon密钥空间(Cassandra)?,php,laravel,cassandra,Php,Laravel,Cassandra,我正在尝试连接到amazon密钥空间中托管的Cassandra,每个连接上都需要包含SSL证书 我已经安装了驱动程序,连接成功,但是身份验证失败,因为我缺少证书 我尝试了以下包装,但没有一个包含配置SSL证书的参数: sonvq/laravel cassandra 福伊塔德/拉韦尔卡桑德拉 库贝特奇/拉卡萨 在我的config/database.php文件中,我配置了以下内容,我猜证书在“options”参数中,但它不起作用: 'cassandra' => [ 'dr
'cassandra' => [
'driver' => 'cassandra',
'host' => env('CASSANDRA_DB_HOST', ''),
'port' => env('CASSANDRA_DB_PORT', 9142),
'keyspace' => env('CASSANDRA_DB_DATABASE', ''),
'username' => env('CASSANDRA_DB_USERNAME', ''),
'password' => env('CASSANDRA_DB_PASSWORD', ''),
'options' => array(
Cassandra::VERIFY_PEER_CERT => '/home/user/AmazonRootCA1.pem',
),
]
通过命令行使用“cqlsh”可以很好地工作,因为在该命令中可以很容易地配置证书路径,但在laravel上,我无法找到如何设置该路径
任何帮助都会很好!谢谢 过去两天,我一直在尝试将我的laravel应用程序连接到amazon密钥空间,这让我头疼不已 最后,我对Cubetech/lacassa进行了一些更改,使其工作正常 在阅读了datastax的文档之后,我找到了加载amazon PEM证书的方法,最后我可以连接了 如果对connection.php进行以下更改,那就太好了
protected function createConnection(array $config)
{
$ssl = Cassandra::ssl()
->withVerifyFlags(Cassandra::VERIFY_PEER_CERT)
->withTrustedCerts($config['cert_path'])
->build();
$cluster = Cassandra::cluster()
->withContactPoints($config['host'])
->withPort((int) $config['port'])
->withCredentials($config['username'],$config['password'])
->withSSL($ssl)
->withDefaultConsistency(Cassandra::CONSISTENCY_LOCAL_QUORUM)
->build();
$keyspace = $config['keyspace'];
$connection = $cluster->connect($keyspace);
return $connection;
}
还需要设置证书路径变量
出于某种原因,我发现即使配置了环境变量,也总是与localhost建立连接,这就是我使用$config数组加载环境变量的原因
查询返回Cassandra/Rows对象,我必须将它们转换为字符串或在循环中读取它们,但这不是问题