読者です 読者をやめる 読者になる 読者になる

MacでFuel+MongoDB

MarvericsでデフォのPHPは5.4.17。

PHP5.5系入れたい。。。
Mongoも入れたい。。。
そこで登場、Homebrew。
Mongoはいつもどおり。
PHPはtapでリポジトリ追加する手間はあるものの、いつも通りスラーって入れられる。

で、ここからめんどくさい設定ラッシュ。

まずApache(httpd.conf)の設定。

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.

db.phpMAMPMySQL使用するときに、

<?php
return array(
  'dsn' => 'dbname=fuel_dev;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock'
);

と記述するとおもうのですが、パラメータ間のセミコロンはあくまでデリミタであって、ステップ終了のセミコロンではありません。

故に、勢い余って最後にセミコロン入れたもんなら、No such file とかでエラーでまくって事故ります。

お気をつけて!