PHP SSL connection to MongoDB



我在使用 crt 文件连接到 DigitalOcean 上的 MongoDB 时遇到困难。我的代码如下:

<?php
require_once __DIR__ . "/vendor/autoload.php";
$conn = new MongoDBClient('mongodb://[app]-ad319710.mongo.ondigitalocean.com', array(
'username' => 'doadmin',
'password' => '[password]',
'db'       => 'aircraft',
'authSource' => 'admin',
'replicaSet' => '[app]',
'ssl' => 'true',
'sslCAFile' => '/usr/share/ca-certificates/app/ca-certificate.crt'
));
$db = $conn->aircraft;
$collection = $db->data;
?>

我收到一个错误:">未捕获的MongoDB\驱动程序\异常\连接超时异常:找不到合适的服务器"。我以这种方式安装了驱动程序:

  • Sudo Pecl install mongodb
  • sudo nano/etc/php/
  • 7.4/apache2/php.ini → extension=mongodb.so
  • cd/var/www/html
  • 须藤作曲家需要Mongodb/MongoDB

我可以使用MongoDB客户端进行连接,但只能使用证书。连接字符串如下所示:mongodb+srv://doadmin:
[password]@[app]-ad319710.mongo.ondigitalocean.com/aircraft?authSource=admin&replicaSet=[app]&tls=true&tlsCAFile=ca-certficate.crt

phpinfo() mongodb

MongoDB客户端:4.4.6
MongoDB服务器:4.4.3

Mongodb php驱动程序的问题:https://github.com/mongodb/mongo-php-driver/issues/484,它与CRT无关。

可以通过此cmd修复

塞布尔 -P httpd_can_network_connect 上

最新更新