shibomb eats weird things...

and out something.

Lithiumでmongodbに繋がらない

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"
:
:
:

一発目の情報にそれらしいことが載ってますね。 これをググってみたら、ビンゴの情報がありました。

Can't Connect to MongoDB

ということで、

app/config/bootstrap/connections.php のmongoDB設定に下記を追加。

'persistent' => 'foo'

目が疲れました。

© shibomb. All Rights Reserved.