mongodb でスキーマレスにデータ登録を行います。
今回は、xhprof のプロファイリングデータを直接 mongodb に保存して xhgui で確認できるようにしてみます。
Contents
MongoDB
MongoDBは、ドキュメントベースの分散データベースです。
インストール
debian/ubuntu
1 |
apt-get install mongodb |
centos
1 |
yum install mongodb |
操作
- 接続
1 |
mongo --host 192.168.99.100 --port 27017 |
- バージョン
1 |
db.version() |
- データベース一覧
1 |
show dbs |
- データベース選択
1 |
use xhprof |
- 使用状態
1 |
db.stats() |
- コレクション作成
1 |
db.createCollection('test') |
- ドキュメント追加
1 |
db.test.insert({'key':'value'}) |
- コレクション一覧
1 |
show collections |
- ドキュメント全件取得
1 |
db.test.find({}) |
- ソート&100件取得
1 |
db.test.find({}).sort({_id:-1}).limit(100) |
PHP 拡張モジュール追加
拡張モジュールをインストールします。
php にmongo 拡張モジュール(旧)を拡張します。
今回はMongoClientクラスを使っている関係でmongoドライバーをインストールします。
※現在は MongoDB 拡張モジュールを使うことになります。
1 2 3 4 5 6 |
git clone https://github.com/mongodb/mongo-php-driver-legacy.git cd mongo-php-driver-legacy phpize ./configure make all make install |
※mongodbの場合
1 |
pecl install mongodb |
インストール確認
インストール先を確認
1 |
ls -al /usr/local/lib/php/extensions/ |
インストールした先がPHP拡張ディレクトリと同じか確認します。
1 |
php -i | grep extension_dir |
INI編集
php.ini を編集します。
1 |
extension = mongo.so |
PHP再起動
phpを再起動します。
備考
古い環境だとupdateしてもmongodbがパッケージに含まれてなかったりもしますので、リポジトリを追加するなど必要な場合があります。
関連リンク
https://docs.mongodb.com/manual/indexes/
https://www.php.net/manual/ja/class.mongoclient.php
https://github.com/mongodb/mongo-php-driver-legacy
https://pecl.php.net/package/mongo
https://pecl.php.net/package/mongodb