PHP
MongoDB
xampp

XAMPP環境でMongoDBを扱う

More than 3 years have passed since last update.


はじめに

卒研生がMongoDBのインストールで詰まってるので手順書を書きます.MongoDB本体のインストールやパスなどは既に通っていると想定しています.


インストール作業

各種設定をする前に,必要な物をインストールしたり,データを入れたりします.


XAMPPのインストール

XAMPPのダウンロードサイトから,適当なXAMPPをダウンロードしてきてください.

https://osdn.jp/projects/xampp/

XAMPPは7zという圧縮ファイルになっているため,7-zipなどのアーカイバを使って解凍します.XAMPPの圧縮ファイルを解凍すると,xamppフォルダが新しく作られます.このフォルダは便宜的にCドライブ直下に入れてください.

xamppフォルダの中には,PHPやApache,MySQLなどが入っています.ですが,この状態だとインストールは完了していません.xamppフォルダにsetup_xampp.batが入っているので,それを実行してください.黒い画面が立ち上がってしばらくするとインストールが終わります.


MongoDBドライバのインストール

MongoDBドライバは,PHPのバージョンによって必要なファイルが異なります.なので,ダウンロードする前にPHPとMongoDBのバージョンを確認する必要があります.

まずはXAMPPを起動してください.XAMPPからApacheのサービスを立ち上げて,Adminをクリックしてください.

1.png

ブラウザが立ち上がり,XAMPPのダッシュボードが表示されます.上のメニューからPHPInfoをクリックしてください.

2.png

PHP Version ~とデカい文字で書いてあるので,そのバージョンを控えてください.この説明では,「PHP Version 5.6.14」と想定して説明を続けます.

PHPからMongoDBを動かすには,MongoDBドライバというものが必要です.MongoDBドライバは以下のサイトで配布しています.

http://pecl.php.net/package/mongo

サイトを開くと,MongoDBの各種バージョンが配布されています.ここでは「1.6.11」を例に説明します.

1.6.11の「田DLL」のリンクをクリックします.

3.png

PHPのバージョンは5.6なので,5.6 Thread Safe (TS) x86をクリックしてください.ダウンロードが開始されます.

2.png

MongoDBドライバを解凍すると,中にphp_mongo.dllが入っています.php_mongo.dllをC:\xampp\php\ext

にコピーしてください.

これでMongoDBドライバのインストールが完了です.


設定作業


php.iniでの設定

php.iniとは,PHPの設定ファイルのことです.php.iniはC:\xampp\phpに入っています.

php.iniを開くと,様々な設定が書いてあります.とりあえず,ファイルの一番最後に以下の内容を追加してください.


php.ini

extension=php_mongo.dll


この設定をすることで,Apache起動時にMongoDBドライバがロードされるようになります.


パスの設定

このまま,XAMPPからApacheをStop->Startしようとすると,libsasl.dllがないとか言われて動きません.libsasl.dllが必要なのに,Apacheがどこにあるのかわかっていないので,libsasl.dllの場所などを教えてあげる必要があります.

環境変数のパスの設定方法は知っていると仮定して説明します.以下のパスを環境変数Pathに追加してください.

C:\xampp\php\ext

C:\xampp\php

これで,Apacheを再起動してもエラーが出なくなります.

MongoDBドライバが正常に読み込まれてるか確認してください.PHPInfoで確認できます.


動作の確認

最後に動作の確認を行います.mongodコマンドを使ってMongoDBサーバを立ち上げてください.MongoDBサーバを立ち上げたら,データベースがちゃんと開いているかどうかmongoコマンドを使って確認してください.

次に,PHPで動作するかどうか確認します.

とりあえず,Apacheを再起動します

htdocsに以下のファイルを置いてください.


test.php

<?php

// MongoDBクライアントの作成
$mongo = new MongoClient();
echo "mongoのステータス<br>";
var_dump($mongo);
echo "<br><br>";

// データベースの中身を見る
echo "データベースのリスト<br>";
var_dump($mongo->listDBs());
echo "<br><br>";

// データベースの選択
$db = $mongo->selectDB("danbooru");
echo "データベースの情報<br>";
var_dump($db);
echo "<br><br>";

// コレクションの選択
$collection = $db->selectCollection("posts");
echo "コレクションの情報<br>";
var_dump($collection);
echo "<br><br>";

// 以下の2行は
// $db = $mongo->selectDB("danbooru");
// $collection = $db->selectCollection("posts");
// 下の1行と同じ意味です
// $collection = $mongo->selectCollection("danbooru", "posts");

echo "データの数:";
print $collection->count();
echo "<br><br>";
?>


エラーが出ずにデータの数が表示されたら完了です.


勉強方法

以下のサイトを参照してください.MongoDBの使い方が全部書いてあります.

http://php.net/manual/ja/mongo.core.php