CakePHP。
ずっと 1.x 系を使っていたけど、ようやく 2.2.4 を使ってみた。
細かいところで使い勝手がよくなってるなあと思った。
サンプル的になんか動かしてみるかと、適当にDB作って動かしてみた。
が、database.php に正しい接続情報をセットしていても、以下のメッセージが出てつながらなかった。
原因は、PostgreSQL の PDO ドライバが入ってなかったこと。
確認は、下記操作。
どうして入ってないのか原因を追いかけると、PHP の configure 時に --with-pdo-pgsql=shared と、shared 指定をしながら、実際には実行時に使うようにもしてなかったため。
改めて、shared を外してコンパイルして、確認。
解決。
ちなみに、shared にしといて実行時に組み込むにはどうしたらいいんだろう。
php.ini を見ると、Windows の場合は extension DLL をロードしているみたいだけど、*NIX の場合は?
ずっと 1.x 系を使っていたけど、ようやく 2.2.4 を使ってみた。
細かいところで使い勝手がよくなってるなあと思った。
サンプル的になんか動かしてみるかと、適当にDB作って動かしてみた。
が、database.php に正しい接続情報をセットしていても、以下のメッセージが出てつながらなかった。
Cake is NOT able to connect to the database. Database connection "Postgres" is missing, or could not be created. |
原因は、PostgreSQL の PDO ドライバが入ってなかったこと。
確認は、下記操作。
$ php -i | grep PDO PDO PDO support => enabled PDO drivers => |
どうして入ってないのか原因を追いかけると、PHP の configure 時に --with-pdo-pgsql=shared と、shared 指定をしながら、実際には実行時に使うようにもしてなかったため。
改めて、shared を外してコンパイルして、確認。
# php -i | grep PDO PDO PDO support => enabled PDO drivers => pgsql, sqlite PDO Driver for PostgreSQL => enabled PDO Driver for SQLite 3.x => enabled |
解決。
ちなみに、shared にしといて実行時に組み込むにはどうしたらいいんだろう。
php.ini を見ると、Windows の場合は extension DLL をロードしているみたいだけど、*NIX の場合は?