【问题标题】:SSL Certificate for SingleStore managed instance on Laravel Vapor EnvironmentLaravel Vapor 环境中 SingleStore 托管实例的 SSL 证书
【发布时间】:2026-01-15 11:25:01
【问题描述】:

第一次在 AWS 上使用 Laravel Vapor 设置 SingleStore。

我不知道在哪里/如何指向 PDO 连接以使用来自 SingleStore 的 SSL/pem。我已将 pem 部署到应用根目录。

我的数据库配置是:

    'singlestore' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '3307'),
        'database' => env('DB_DATABASE'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8',
        'collation' => 'utf8_general_ci',
        'prefix' => '',
        'prefix_indexes' => true,
        'options' => extension_loaded('pdo_mysql') ? array_filter([
            PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            PDO::ATTR_EMULATE_PREPARES => true
        ]) : [],
    ],

并且在我尝试过的 Vapor 环境中:

 MYSQL_ATTR_SSL_CA=singlestore_bundel.pem
 MYSQL_ATTR_SSL_CA=~/singlestore_bundel.pem
 MYSQL_ATTR_SSL_CA=~/public/singlestore_bundel.pem

如何将 PDO 连接指向 pem?

谢谢

【问题讨论】:

    标签: laravel singlestore laravel-vapor


    【解决方案1】:

    Jack Ellis 帮助我了解了他如何使用 Fathom。

    在数据库配置文件中,对于 SingleStore:

    'options' => extension_loaded('pdo_mysql') && env('APP_ENV') !== 'testing' && env('APP_ENV') !== 'local' ? array_filter([
            PDO::MYSQL_ATTR_SSL_CA => resource_path('singlestore/singlestore_bundle.pem'),
            PDO::ATTR_EMULATE_PREPARES => true,
            PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => true,
            PDO::ATTR_PERSISTENT => (env('IS_HEROKU') == 'yes')
     ]) : [],
    

    【讨论】: