CakePHPでMongoDBを使ってみる
CakePHPでMongoDBが動くまで
CakePHP側の準備
WEB ROOT
/var/www/html
CakePHPを取得
/var/wwwにlibを作成
libでCakePHPを取得
git clone git://github.com/cakephp/cakephp1x.git
ブランチを1.3に切り替え
git checkout origin/1.3
これでCakePHP1.3がlibにインストールされた状態。
appを公開用フォルダに移動
(本番はWebrootだけ移動するのが望ましい)
cp /var/www/lib/cakephp1x/app /var/www/html/projectname
webrootのindex.phpのパスの定義を修正
ROOT, APP_DIR, CAKE_CORE_INCLUDE_PATHの内容を実際の構成に合わせて変更
if (!defined('ROOT')) { define('ROOT', DS.'var'.DS.'www'.DS.'html'); } if (!defined('APP_DIR')) { define('APP_DIR', 'projectname'); } if (!defined('CAKE_CORE_INCLUDE_PATH')) { /* define('CAKE_CORE_INCLUDE_PATH', ROOT); */ define('CAKE_CORE_INCLUDE_PATH', DS.'var'.DS.'www'.DS.'lib'.DS.'cakephp1x'); }
MongoDBのインストールと起動はここを参照。
http://d.hatena.ne.jp/camelmasa/20100222/1266798151
起動スクリプトなど作成するならここを参照。
http://www.ihpsystem.com/blog/196
PHPからMongoDBを操作するためのライブラリをインストール
pecl install mongo
php.iniにextension=mongo.soを追加
(php.iniにコメントでextentionを入れるための場所が定義されてるので、そのあたりに追加)
MongoDB-Datasourceをインストールする
app/plugins/に移動
git clone git://github.com/ichikaway/mongoDB-Datasource.git
mongoDB-Datasourceに本体がダウンロードされるので、ディレクトリ名をmongodbに変更する
app/config/database.phpを編集
var $mongo= array( 'datasource' => 'mongodb.mongodbSource', 'database' => 'test', );
あとはDB側で$mongoを使用するように設定する。
もしくはdatabase.phpのdefaultをmongoDBの定義にしても良し。
mongodbのデフォルトポートは27017