cakePHP1.3再入門#5 CakeでBakeまで
久しぶりにWebサービスでも作ってみようとCakePHPを使ってますが、すっかり忘れていますw
基本的な部分の覚書があいまいだったので、再度書いてみます。
1.開発環境とインストール
開発環境はAptana+Debug-Kit+FireBugという感じです。
Windows機での開発ですので xamppを使います。DBはMySQL。
cakePHPサイトから最新版のcakePHP1.3.8 安定版をダウンロードして、zipファイルを解凍。
/xampp/htdocs/の配下に解凍したディレクトリごとコピーします。
作成したいプロジェクトの名前にしますので、今回はwebapiとしてみました。
/xampp/htdocs/webapiとなります。この下にcake plugins vendors app などのディレクトリやファイルを
コピーすることになります。
2.初期設定
ここでxamppのコントロールパネルを起動して「Apache」「MySQL」を起動してFireFoxから
http://localhost/webapiとURLを呼び出すとデフォルトの画面が表示されます。
ここで起動画面に出ているエラーを消しておきます。
webapi/app/config/core.phpの修正。
Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi'); Configure::write('Security.cipherSeed', '76859309657453542496749683645');
上記二行の最後の定数部分を適当に書き直します。セキュリティに関する乱数や鍵の基本になる部分ですから あまり短い文字列や数字では強度が落ちるのかな?
後はデータベースの設定だけです。
xamppをインストールしていればphpMyAdminもはいっていると思いますから、簡単にデータベースを
作っておきます。
FireFoxからhttp://localhost/でxamppのコントロール画面を表示させて左側メニューからphpMyAdminを起動します。
今回のwebapi用に適当にデータベースを作成してみます。
データベース新規作成で、webapitestとしてデータベースを作成しておきます。
ひとつぐらいテーブルも作成しておきます。適当にwebapidatasのテーブルを作成しておきます。
(テーブル名はモデルと関係するので複数形にしておくと良い。)
テーブルの設定などはMySQLの説明サイトなどで確認。
データベースユーザーも専用の作成しておきましょう。
phpMyAdminの画面にはユーザーというタグが無いのですが「特権」というところで作成します。
webapiuserでwebapipasswordとしてみます。
ここでユーザー名とパスワードを指定して作っておきます。アクセス権限は今回作成したwebapitestデータベース
だけに絞っておくとよりセキュアかもしれませんね。
さて最後のエラーを消します。
webapi/app/config/database.phpの作成。
このディレクトリに database.php.defaultというファイルがありますので database.phpにリネームしても良いし
コピーして新しい作成してもいいですね。コピーはAptanaのphpエクスプローラからも出来ます。
database.phpを開いて編集します。
class DATABASE_CONFIG { var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'webapiuser', 'password' => 'webapipassword', 'database' => 'webapitest', 'prefix' => '', ); var $test = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'user', 'password' => 'password', 'database' => 'test_database_name', 'prefix' => '', ); }
こんな感じで指定します。
データベース名->webapitest
ユーザー->webapiuser
パスワード->webapipassword
これで先ほどのURL http://localhost/webapiにアクセスすると黄色い帯がすべてグリーンになっていると思います。
データベースのところは黄色になっている場合はエラーメッセージから確認します。