You need to enable JavaScript to run this app. 如何通过Red Bean PHP配置SSL加密连接PGSQL
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Red Bean PHP配置SSL加密连接PGSQL

RedBean配置PostgreSQL SSL连接方案

RedBean的R::setup()方法第一个参数直接兼容标准PDO PostgreSQL DSN格式,你只需将原有PDO示例中的SSL相关参数追加到现有DSN中即可,两种实现方式如下:

方式一:直接修改DSN字符串(最简方案)

直接把SSL配置参数拼接到R::setup的第一个DSN参数里:

R::setup(
    "pgsql:host=$ip;port=$port;dbname=$dbname;sslmode=require;sslcert=[实际证书路径]/client.maxroach.crt;sslkey=[实际密钥路径]/client.maxroach.key;sslrootcert=[实际根证书路径]/ca.crt",
    $user,
    $password,
    $frozen
);

// 如需要和原有PDO示例保持一致的属性配置,连接成功后追加设置即可
R::getPDO()->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
R::getPDO()->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);

方式二:预创建PDO实例传入RedBean(灵活可控)

如果需要提前配置PDO属性,也可以先按原有逻辑创建带SSL配置的PDO对象,再交给RedBean使用:

// 实例化带SSL配置的PDO对象
$dbh = new PDO(
    "pgsql:host=$ip;port=$port;dbname=$dbname;sslmode=require;sslcert=[路径]/client.maxroach.crt;sslkey=[路径]/client.maxroach.key;sslrootcert=[路径]/ca.crt",
    $user,
    $password,
    [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_EMULATE_PREPARES => true
    ]
);

// 将PDO实例注册为RedBean的默认连接
R::addDatabase('default', $dbh, $frozen);
R::selectDatabase('default');

注意事项

  • 证书路径请填写服务器上的绝对路径,确保Web运行用户对证书文件有可读权限
  • sslmode参数可根据场景调整:强制SSL校验填require,需要校验服务端证书合法性可填verify-ca或verify-full

内容的提问来源于stack exchange,提问作者namen3645

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 13:18:00