FuelPHPをMAMPで動かすときのDB設定の注意
密かに話題のFuelPHPを試してみようと↓の記事を参考に試してみました。
ただ、MAMP で動かす場合にデーターベースの設定でつまづいたので備忘録。
CREATE DATABASE `blog_example` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
を実行後にfuel/app/config/development/db.php をMAMPの環境に合わせて以下のように編集。
<?php /** * The development database settings. */ return array( 'default' => array( 'type' => 'mysql', 'connection' => array( 'hostname' => 'localhost', 'port' => '8889', 'database' => 'blog_example', 'username' => 'root', 'password' => 'mypassword', 'persistent' => false, ), 'table_prefix' => '', 'charset' => 'utf8', 'caching' => false, 'profiling' => false, ), );
とここでマイグレーションとやらを実行したらエラーが↓のように発生?!。
$ oil refine migrate Error: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Users/username/blog/fuel/core/classes/database/mysql/connection.php on 96
エラー箇所を見たら mysql_pconnect($hostname, $username, $password); が動作していないみたい。
そういえばMAMPの画面に↓のようなものがあったのを思い出す。
ならばMAMPが問題なのかと↓のように変更。
<?php /** * The development database settings. */ return array( 'default' => array( 'type' => 'mysql', 'connection' => array( 'hostname' => ':/Applications/MAMP/tmp/mysql/mysql.sock', //'port' => '8889', 'database' => 'blog_example', 'username' => 'root', 'password' => 'mypassword', 'persistent' => false, ), 'table_prefix' => '', 'charset' => 'utf8', 'caching' => false, 'profiling' => false, ), );
その後 $ oil refine migrate を実行すると成功。
http://localhost/posts にアクセスしても無事に表示されました。