Lithiumをやってみようと
Lithiumをやってみようと思いセットアップを開始。
環境: さくらVPS, CentOS 5.5 Lithium: version 0.9.9 mongodb: 1.6.5 (参考: CentOS5.5にMongoDBをインストールしてみる )
Blogチュートリアルを進めていくと、DB接続を使うところで、エラーになってしまった。
Fatal error: Uncaught exception 'lithium\core\NetworkException' with message 'Could not connect to the database.' in /(path)/libraries/lithium/data/source/MongoDb.php:792
LithiumもmongoDBも初体験だったので、どこかでセットアップをミスしたに違いないと確認する。
作成したソースに間違いはない。 mongoDBもコンソールから直接実行すれば動作している。 iptablesなども疑ったが問題なさそう。
悪いのは僕じゃない(たぶん、きっと)
とても悩んだ挙句、僕が悪いわけじゃないと80%ぐらい確信して、Lithium本体のデバッグをしてみることにしました。
エラーメッセージで表示されているソースを探って、connectionメソッドに辿りついた。 try-catch構文を見てギョッとした。
catch(Exception $e) {}
えーっと、例外を握り潰してませんか? せめてログぐらい出力しておいてほしかった・・・orz 気を取り直してを$eをvar_dumpしてみた。
object(MongoConnectionException)#19 (7) { ["message":protected]=> string(60) "pass in an identifying string to get a persistent connection" : : :
一発目の情報にそれらしいことが載ってますね。 これをググってみたら、ビンゴの情報がありました。
ということで、
app/config/bootstrap/connections.php のmongoDB設定に下記を追加。
'persistent' => 'foo'
目が疲れました。