MacでFuel+MongoDB
MarvericsでデフォのPHPは5.4.17。
PHP5.5系入れたい。。。
Mongoも入れたい。。。
そこで登場、Homebrew。
Mongoはいつもどおり。
PHPはtapでリポジトリ追加する手間はあるものの、いつも通りスラーって入れられる。
で、ここからめんどくさい設定ラッシュ。
1. PHPの設定
# LoadModule php5_module libexec/apache2/libphp5.so
コメントアウトされてるっていう。
そして、モジュールのパス。
[Default]
/usr/libexec/apache2/libphp5.so
[Homebrew]
/usr/local/Cellar/php55/5.5.8/libexec/apache2/libphp5.so
2. DocumentRoot
publicフォルダまでいれたろう。
3. <Directory />
AllowOverride All
Allow from all
4. <Directory "<workspace>">
追加。
続いて、php.iniに追記(/usr/local/etc/php/5.5/php.ini)
date.timezone = Asia/Tokyo (最初コメントアウトされてる)
extension=mongo.so
(※ もし標準のPHPを使用する場合、下記の処理が必要
$ sudo cp /etc/php.ini.default /etc/php.ini(権限も一緒に))
最後に、mongoのphp driverのインストール。
$ sudo pecl install mongo
ここで、mongo.soが配置される場所に注意!
[Default]
/usr/lib/php/extensions/no-debug-non-zts-20100525/mongo.so
[Homebrew]
/usr/local/Cellar/php55/5.5.8/lib/php/extensions/mongo.so
どのPHPを使って、どこに何が保存されているか、常に把握していないとあとで事故る。
そして、今日事故った。
なので、備忘録。
P.S.
<?php return array( 'dsn' => 'dbname=fuel_dev;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock' );
と記述するとおもうのですが、パラメータ間のセミコロンはあくまでデリミタであって、ステップ終了のセミコロンではありません。
故に、勢い余って最後にセミコロン入れたもんなら、No such file とかでエラーでまくって事故ります。
お気をつけて!