CakePHP の環境で、SSL接続必須な PostgreSQL に接続する方法の覚え書き。
PostgreSQL に SSL 接続するためには、パラメータとして、”sslmode=require” を渡す必要があります。パラメータの渡し方がうまく行かずに ソースにパッチを当てるしかないかと思ったのですが、CakePHP 3.x の設定ファイル config/app.php で、下記のように設定することで、接続できました。
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Postgres',
'persistent' => false,
'host' => 'db.example.com',
'port' => 5432,
'username' => 'username',
'password' => 'password',
'database' => 'database',
'schema' => 'public',
'prefix' => '',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
'flags' => [
'sslmode' => 'require',
],
'log' => false,
'quoteIdentifiers' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
],
具体的には、
'flags' => [
'sslmode' => 'require',
],
の部分で、 sslmode のパラメータを渡しています。
他のパラメータも同じように渡すことができるようです。