LoginSignup
3
4

More than 5 years have passed since last update.

XAMPP環境でMongoDBを扱う

Posted at

はじめに

卒研生が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

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4