- Home ›
- CakePHPの使い方 ›
- CakePHPインストール ›
- HERE
database.phpの作成とデータベースの用意
CakePHPでデータベースに関する設定を行うdatabase.phpの作成と実際に使用するデータベース側の準備方法について解説します。
1.database.phpの作成
2.設定ファイルの編集
3.使用するデータベースの準備
CakePHPをインストールした後でブラウザから「http://localhost/cake/」へアクセスして下さい。すると表示されたページに次のような表示がされています。
Rename APP/Config/database.php.default to APP/Config/database.php
またページを最後までスクロールして頂くと次のようにWarningが表示されています。
Warningはそれぞれ次のように表示されています。
これは「database.php」が作成されていないために表示されているものです。では「(CakePHPをインストールしたディレクトリ)\app\Config」ディレクトリを見て下さい。
「database.php.default」というファイルがあります。このファイルをコピーした上で名前を「database.php」に変更して下さい。
ファイルの中身は後で編集を行います。取り合えずこの時点で改めて「http://localhost/cake/」へアクセスして下さい。表示されるメッセージが次のように変わっています。
Cake is NOT able to connect to the database.
Database connection "Mysql" is missing, or could not be created.
設定ファイルが作成されたのは認識されるようになりました。ただまだ設定を変更しておらずデータベース側の準備もしていませんので別のメッセージが表示されています。
また最後までスクロールして頂くと表示されていたWarningが消えています。
では続いて設定を行います。
先程作成した「database.php」ファイルを開いて下さい。このファイルはPHPスクリプトが記述されており、コメント部分を除くと次のように記述されています。
<?php class DATABASE_CONFIG { public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'user', 'password' => 'password', 'database' => 'database_name', 'prefix' => '', //'encoding' => 'utf8', ); public $test = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'user', 'password' => 'password', 'database' => 'test_database_name', 'prefix' => '', //'encoding' => 'utf8', ); }
2つの配列が用意されていますが、「default」の方が通常使用するデータベースに関する設定を行うもので、「test」の方はテスト用の設定です。テスト用はしばらく使いそうもないので今回削除しました。
使用するデータベースについてはMySQLの他にSQLite、PostgreSQL、SQL Serverなどが利用できます。使用するデータベース毎に使用する項目が一部異なります。詳しくは「database.php」ファイルに記載されたコメント部分を読んでみて下さい。今回はMySQLを使用するため次のように変更しました。
<?php class DATABASE_CONFIG { public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'cake_user', 'password' => 'cake_pass', 'database' => 'cake_db', 'prefix' => '', 'encoding' => 'utf8', ); }
MySQLが動いているホスト名とデータベース名の他にCakePHPからデータベースにアクセスする時のユーザー名とパスワードを指定します。「persistent」は持続的接続を行うかどうかで今回はfalseにしました。
では最後にMySQLでデータベースやユーザーを作成します。
それではMySQLに接続して下さい。
データベースを作成します。今回作成するデータベースの名前は"cake_db"としました(データベース名は任意の名前を指定して頂いて構いません)。
create database cake_db;
続いてデータベースを操作するユーザーを作成します。今回はユーザー名を"cake_user"としました。与える権限はcake_dbデータベースに対して「all」です。
grant all on cake_db.* to 'cake_user'@'localhost' identified by 'cake_pass';
これでデータベース側の準備も完了です。
次にPHPの設定です。PHPからMySQLへはPDOを使って接続します。その為、php.iniファイルで「extension=php_pdo_mysql.dll」がコメントになっていないことを確認して下さい。(データベースなどの準備が出来ているのに「Database connection "Mysql" is missing, or could not be created.」のような表示されている場合はPDOの設定を確認されてみて下さい)。
では改めて「http://localhost/cake/」へアクセスして下さい。表示されるメッセージが次のように変わっています。
Cake is able to connect to the database.
上記のように表示されればデータベースに関する準備は全て完了です。
( Written by Tatsuo Ikura )