ARTICLE

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!

さあバリバリやりましょう!

blog comments powered by Disqus

Categories