CakePHP : データベース接続設定

メモ:  Category:php

作業環境:

  • Debian 4.0
  • Apache2.2.3
  • PHP5.2.0
  • MySQL5.0.32
  • CakePHP 1.1.19.6305

CakePHP を Web サーバーに配置し確認したところ、「Your database configuration file is not present.」 (データベース構成ファイルは存在していません。)と表示されています。

CakePHPの初期画面

そこで、最低限必要な以下の作業を行います。

  • MySQL にデータベースを作成する。(テーブル等オブジェクトが入る領域)
  • MySQL にユーザーを作成する。
  • CakePHP のデータベース接続設定を作成する。

MySQL の設定

MySQL にデータベースとユーザーを作成します。

まず、データベースを作成します。

$ mysql -u root -p
mysql>CREATE DATABASE hogedb;

hogedb データベースに対して全ての権限を持つローカルユーザー(user1)を作成します。

mysql>GRANT ALL ON hogedb.* TO user1@localhost IDENTIFIED BY 'passwd';

関連:MySQL - Database の作成と User の作成

データベースの接続設定

解凍した CakePHP の中に「app/config/database.php.default」があります。この database.php.default を雛形にして database.php を作成します。

database.php を作成する方法に bake というツールを使う方法もありますが、CakePHP の構造も把握してみたいので 直接編集します。

$ cp database.php.default database.php
$ vi database.php

var $default = array('driver' => 'mysql',           /* 使用するデータベース */
                     'connect' => 'mysql_connect',  /* 接続方法を指定します */
                     'host' => 'localhost',         /* 接続先ホスト */
                     'login' => 'dbuser',           /* データベースのユーザー */
                     'password' => 'dbpassword',    /* パスワード */
                     'database' => 'bnotebd',       /* データベース名 */
                     'prefix' => '');               /* テーブルの接頭語 */

持続的な接続をしたい場合、connect を’mysql_pconnect’に設定します。

ここまで設定できたらブラウザから参照してみます。次のようなメッセージが表示されれば 接続に成功しています。

データベース接続の完了

おまけ

CakePHP には、bake という雛形を作成してくれるツールが用意されています。この bake を使って データベース接続の設定を行うこともできます。

bake は CakePHP を解凍したディレクトリの「cake/scripts/」にあります。

$ php bake.php
|    |__| |_/  |__  |__] |__| |__]    |__] |__| |_/  |__
|___ |  | | \_ |___ |    |  | |       |__] |  | | \_ |___
---------------------------------------------------------------

Bake -app in /home/webadmin/htdocs/hoge/app (y/n)
[y] >
Baking...
---------------------------------------------------------------
Name: app
Path: /home/webadmin/htdocs/hoge/app
---------------------------------------------------------------

Your database configuration was not found. Take a moment to create one:
---------------------------------------------------------------
Database Configuration:
---------------------------------------------------------------

What database driver would you like to use? (mysql/mysqli/mssql/sqlite/postgres/odbc)
[mysql] >

bluenote by BBB