Windows に MongoDB 2.0.6 をインストール + php_mongo-1.2.10-5.4-vc9.dll 拡張参照でエラー
Windows 用 MongoDB 2.0.6 のダウンロード
http://www.mongodb.org から DOWNLOADS へ移動し、2.0.6 の Windows 32-bit をダウンロードし、ローカルに配置し、PATH を通す。
php_mongo.dll を php.ini に記述
https://github.com/mongodb/mongo-php-driver/downloads から php_mongo-1.2.10.zip をダウンロードし、php/ext/ 以下に php_mongo-1.2.10-5.4-vc9.dll を配置する。
php.ini に以下を記述し、Apache 再起動。
extension=php_mongo-1.2.10-5.4-vc9.dll
以下のエラーが発生する。
The procedure entry point zend_new_interned_string could not be located in the dynamic link library php5ts.dll
ググったら 報告 されてた。
ということで一個バージョン落として以下へ変更したところ、再起動 OK。
extension=php_mongo-1.2.10-5.3-vc9.dll
MongoDB のセットアップ
次は MongoDB のセットアップ。 と、その前に(PHP Manual)[http://www.php.net/manual/ja/mongo.tutorial.php] に書いてあるソースをコピペして実行してみる。
<?php
// 接続
$m = new Mongo();
// データベースの選択
$db = $m->comedy;
// コレクション (リレーショナルデータベースのテーブルみたいなもの) の選択
$collection = $db->cartoons;
// レコードの追加
$obj = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );
$collection->insert($obj);
// 構造が異なる別のレコードの追加
$obj = array( "title" => "XKCD", "online" => true );
$collection->insert($obj);
// コレクション内の全件の検索
$cursor = $collection->find();
// 結果の反復処理
foreach ($cursor as $obj) {
echo $obj["title"] . "\n";
}
もちろん mongod が走っていないので以下のようなエラーが出る。
Fatal error: Uncaught exception 'MongoConnectionException' with message 'Unknown error' in [path]
mongod を起動する。—dbpath は適当に指定。
$ mongod --dbpath ~/dev/db/mongodb
これで先ほどのソースを再度実行してみましょう。
Calvin and Hobbes
XKCD
YES!
さあバリバリやりましょう!