以前苦しみました、CakePHP + Nginx
今度はCakePHP + MySQL
これはすんなりいくといいなぁ。。。
1.MySQLのインストール
MySQLのインストールは今回省きます。
参考にしたサイトはこちらになります。
MacOSXにMySQLをインストールする方法
2.データベースの作成
今回利用するデータベースの作成とその他の設定をします。
$ mysql
データベースを作成
$ create database website_cakephp;
ユーザーの設定
$ grant all on website_cakephp.* to dbuser@localhost identified by 'passwordGundam';
3.CakePHPのファイル修正
連携するためにCakePHPの~/cakephp/app/Config/database.phpを修正します。
何もしてなければ、デフォルトのままです。
といいますか、デフォルトからコピーするので当たり前ですかね
public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'user', 'password' => 'password', 'database' => 'database_name', 'prefix' => '', //'encoding' => 'utf8', );
先程データベースに設定した値に合わせて行きます。
public $default = array( 'datasource' => 'Database/Mysql', # 今回DBはMySQLなのでそのまま 'persistent' => false, 'host' => 'localhost', 'login' => 'dbuser', # 変更 'password' => 'passwordGundam', # 変更 'database' => 'website_cakephp', # 変更 'prefix' => '', 'encoding' => 'utf8', # 変更 );
この設定が完了したら、ブラウザからアクセスして見てください。
私のほうでは黄色メッセージも出なくなりました。
うそです。まだ出ます。
またストレートでいかない・・・(´Д`)
さて、何が原因か探してみます。
$ php -i|grep PDO PDO PDO support => enabled PDO drivers => mysql, sqlite PDO Driver for MySQL => enabled PDO Driver for SQLite 3.x => enabled
大丈夫っぽい。
テストプログラムをもらってきて、試してみた。
<?php $hostname = "localhost"; $username = "dbuser"; $password = "passwordGundam"; try { $db = new PDO("mysql:host=$hostname;dbname=website_cakephp", $username, $password); echo "Connected to database\n"; } catch(PDOException $e) { echo $e->getMessage(); } ?>
おろ?
$ php test.php PDO Connection Error: SQLSTATE[HY000] [2002] No such file or directory
なんでしょこれ?
調べて見たところ
php.ini の pdo_mysql.default_socket の値が正しくないので設定しなさいとのこと
mysql.sockを設定されているはず。
$ sudo vim /etc/php.ini pdo_mysql.default_socket=
orz
pdo_mysql.default_socket=/tmp/myql.sock
ちゃんと設定しました。
$ php test.php Connected to database
ふぅ
でもまだブラウザから黄色はなくならない!!!(#^ω^)ピキピキ
どうやらまだやることがあるらしいです。
と思っていましたが、解決しましたとさ
public $default = array( 'datasource' => 'Database/Mysql', # 今回DBはMySQLなのでそのまま 'persistent' => false, 'host' => '127.0.0.1', # 変更 'login' => 'dbuser', # 変更 'password' => 'passwordGundam', # 変更 'database' => 'website_cakephp', # 変更 'prefix' => '', 'encoding' => 'utf8', # 変更 );
localhost -> 127.0.0.1 に変更したとさ
くたばりなさい。
あと一個エラーがありましたが
DebugKitが入っていないだからとか。
これは後日やります。
だって、もう力尽きそう
まぁできたのでよし。
database.phpはtestの値もありますので
うまく使わけることができれば、いいかなと思います。