FuelPHPをMAMPで動かすときのDB設定の注意


密かに話題のFuelPHPを試してみようと↓の記事を参考に試してみました。

参考:FuelPHP のブログチュートリアル

ただ、MAMP で動かす場合にデーターベースの設定でつまづいたので備忘録。

CREATE DATABASE <code>blog_example</code> 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 にアクセスしても無事に表示されました。

この記事を書いた人:

ナカシマ

北区赤羽在住のWEBデザイナー兼エンジニア。インターネット、WordPress、本・漫画、音楽が大好き。妻と猫と暮らすアップル信者。

BLOG: 着ぐるみ追い剥ぎペンギン