CakePHPを使ってデータベースを作りたい(その4)CakePHPの警告メッセージを消す

前回出た警告メッセージの対処を行う。


(1)Notice (1024): Please change the value of 'Security.salt' in app/config/core.php to a salt value specific to your application [CORE\cake\libs\debugger.php, line 684]

→'Security.salt'の値を変えろと言っている。
C:\xampp\htdocs\cake-sample\app\config\core.phpをエディタで開いてみると、201〜204行目に以下の文字列あり。

/**
* A random string used in security hashing methods.
*/
 Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');

この「DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi」の部分を他の文字列に変更する。
※この文字列は運用中に変更しないこと。変更した場合、AuthコンポーネントのUsersテーブルの作り直しが必要になる。また、念のためバックアップもとっておいた方がよさそう。



(2)Notice (1024): Please change the value of 'Security.cipherSeed' in app/config/core.php to a numeric (digits only) seed value specific to your application [CORE\cake\libs\debugger.php, line 688]

→'Security.cipherSeed'の値を変えろと言っている。
C:\xampp\htdocs\cake-sample\app\config\core.phpをエディタで開いてみると、206〜209行目に以下の文字列あり。

/**
* A random numeric string (digits only) used to encrypt/decrypt strings.
*/
 Configure::write('Security.cipherSeed', '76859309657453542496749683645');

この「76859309657453542496749683645」の部分も他の数字に変更する。



(5)Your database configuration file is NOT present. Rename config/database.php.default to config/database.php

→あなたのデータベースの構成ファイルが存在してないと言っている。
C:\xampp\htdocs\cake-sample\app\config に database.php.defaultというファイルがあるので、メッセージの言うとおりdatabase.phpにファイル名を変更する。



すべてのメッセージに対処したので、画面を再描画。
さてどうなるかな。。



新手の黄色メッセージが現れた。


Cake is NOT able to connect to the database.

→データベースに接続することができないと言っている。
先ほどのconfig/database.php(データベース設定ファイル)を開く。


class DATABASE_CONFIG {

 var $default = array(
  'driver' => 'mysql',
  'persistent' => false,
  'host' => 'localhost',
  'login' => 'user',
  'password' => 'password',
  'database' => 'database_name',
  'prefix' => '',
 );

 var $test = array(
  'driver' => 'mysql',
  'persistent' => false,
  'host' => 'localhost',
  'login' => 'user',
  'password' => 'password',
  'database' => 'test_database_name',
  'prefix' => '',
 );
}

デフォルト用とテスト用として、2つのデータベース設定情報が定義されている。
とりあえず、テスト用データベース設定情報は目障りなので削除しておく。


class DATABASE_CONFIG {

 var $default = array(
  'driver' => 'mysql',
  'persistent' => false,
  'host' => 'localhost',
  'login' => 'user',
  'password' => 'password',
  'database' => 'database_name',
  'prefix' => '',
 );
}

これをデータベースに接続することができる形に直す必要がある。
加えて「データベース自体」と「データベースに接続するためのユーザ」も用意する必要がある。


XAMPPコンパネでApacheMySqlを起動させてから、http://localhost/xampp/へ移動。


ツールの「phpMyAdmin」をクリック。(http://localhost/phpmyadmin/へ移動する。)


「新規データベースを作成する」の下にあるテキストボックスに「testdb」と入力して「作成」ボタンをクリック。


データベース「testdb」が作成されたので、データベース設定ファイルを以下のように修正。
(ユーザはとりあえずデフォルトで作成されてそうなrootユーザを使う。)
('encoding' => 'UTF-8'は、文字化けしないおまじない。)


class DATABASE_CONFIG {

 var $default = array(
  'driver' => 'mysql',
  'persistent' => false,
  'host' => 'localhost',
  'login' => 'root',
  'password' => '',
  'database' => 'testdb',
  'prefix' => '',
  'encoding' => 'UTF-8',
 );
}


これで黄色メッセージはなくなるかな。。



グレイト。


次回は、同じことをさくらインターネットに実装することに挑戦したい。
(その前にMySqlのセキュリティを何とかすべきか。そしたらまたdatabase.phpも直さないと。)