Php Can';t更改Laravel查找PostgreSQL SSL证书的位置
我已经安装了pgsql,并设置了我的Laravel config/database.php,如下所示:Php Can';t更改Laravel查找PostgreSQL SSL证书的位置,php,laravel,postgresql,ssl,Php,Laravel,Postgresql,Ssl,我已经安装了pgsql,并设置了我的Laravel config/database.php,如下所示: 'connection_name' => [ 'driver' => 'pgsql', 'host' => env('DB_HOST_2', '127.0.0.1'), 'port' => env('DB_PORT_2', '3306'), 'database' => env('DB_DATABASE_2'), 'usern
'connection_name' => [
'driver' => 'pgsql',
'host' => env('DB_HOST_2', '127.0.0.1'),
'port' => env('DB_PORT_2', '3306'),
'database' => env('DB_DATABASE_2'),
'username' => env('DB_USERNAME_2'),
'password' => env('DB_PASSWORD_2', ''),
'sslmode' => env('DB_SSLMODE_2'),
'charset' => 'utf8',
'prefix' => '',
'options' => [
'sslcert' => '/some/special/path.crt',
],
'schema' => 'public',
],
“connection\u name”位于database.php
的“connections”部分
在artisan tinker中,我得到以下错误,因为它仍在查找SSL证书的默认位置。我无法让它在正确的位置查找证书
>>> use Illuminate\Support\Facades\DB;
>>> DB::connection('connection_name')->getPdo()
Doctrine\DBAL\Driver\PDOException with message 'SQLSTATE[08006] [7] root certificate file "/home/wes/.postgresql/root.crt" does not exist
Either provide the file or change sslmode to disable server certificate verification.'
根证书由“sslrootcert”设置。这是签署服务器证书的证书
“sslcert”设置客户端证书。这是不同的。根证书由“sslrootcert”设置。这是签署服务器证书的证书
“sslcert”设置客户端证书。这是另一回事。我试过了。我试过“sslcert”、“sslrootcert”和“PGSSLCERT”。无论我做什么,它仍然试图从~/.postgresql/root.crt获取证书。我试过了。我试过“sslcert”、“sslrootcert”和“PGSSLCERT”。无论我做什么,它仍然试图从~/.postgresql/root.crt获取证书。为什么ssl(root)证书在“选项”中?这是文档里的还是教程里的?我不使用laravel,但我希望sslmode和sslrootcert是同级的,而不是不同级别的。我尝试将这些选项放在兄弟级别,但我看到Laracasts上有人建议Postgres的正确方法是将它们放在“选项”子级中。为什么ssl(根)证书在“选项”中?这是文档里的还是教程里的?我不使用laravel,但我希望sslmode和sslrootcert是同龄人,而不是处于不同的级别。我尝试将这些选项放在兄弟级别,但我看到Laracasts上有人建议,对博士后来说,正确的方法是将它们放在“选项”子级。