menu
書いてる野郎
orebike@gmail.com
とりあえず始めてみた CakePHP開発環境構築 Apache PHP MySQL環境はXAMPPで一発構築
Cakeを導入する CakePHP: 高速開発 php フレームワーク。 Home からダウンロード 1.3.8
Production向けのインストールをすることにする。
ダウンロードしたcake解凍して、適当なディレクトリに突っ込む。これはどこでもいい できれば浅いディレクトリがよろし
そしてapacheを名前ベースで切り替えることにするのだ ということで
Apacheの設定に↓を書き加える
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "D:\hoge01\app\webroot" ServerName hoge01 </VirtualHost> <Directory "D:\hoge01\app\webroot"> order deny,allow allow from all </Directory>
そしてhostsファイルに
127.0.0.1 hoge01
を追記 LinuxならetcとかWindowsなら
C:\WINDOWS\system32\drivers\etc
らへんにある
D:\hoge01\app\webroot
が
http://hoge01/
に繋がっているわけだ Apacheを再起動して アクセスしてみる
めでたく開通確認
では次にデータベースの設定をやる 適当にデータベースを作る XAMPPでphpmyadminまで入っているので容赦なく利用する
警告が出ている MySQL のデフォルト特権アカウントに相当する設定 (root ユーザでパスワードなし) が含まれています。
だと
特権を見るとrootのパスワード無しになっているので変更しておく
SET PASSWORD FOR 'root'@'localhost' = PASSWORD( '****' ); SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD( '****' );
MySQLをとりあえず再起動
phpmyadminの設定を
$cfg['Servers'][$i]['auth_type'] = 'http'; #←ココ $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = 'hoge'; #←ココ $cfg['Servers'][$i]['extension'] = 'mysql'; $cfg['Servers'][$i]['AllowNoPassword'] = false; #←ココ
んか感じで書き換えてみる。 再びphpmyadminにアクセス
動いたのでDBを作る
CREATE DATABASE `hoge01` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Cakeのほうにも同様の設定を書く app/config/database.php.defaultをコピーして app/config/database.phpを作る
↓っぽく書き換える persistentというやつは多分コネクションを繋ぎっぱにするかどうかの設定 エンコードを書き加えておく。encodingの部分の設定で「UTF-8」と書いているページがチラホラあるが正確には「utf8」だ。
class DATABASE_CONFIG { #通常使う設定 var $default = array( 'driver' => 'mysql', #mysqlに繋ぐ 'persistent' => false, #繋ぎっパにしない 'host' => 'localhost', #接続先 'login' => 'root', #ユーザー 'password' => 'hoge', #パスワード 'database' => 'hoge01', #使うDB 'prefix' => '', #テーブル名の接頭。環境の制限で自由にDBを作れない人とかがDB名代わりに使う 'encoding' => 'utf8', #文字コード ); #テストで使う設定 var $test = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'root', 'password' => 'hoge', 'database' => 'hoge01_test', 'prefix' => '', 'encoding' => 'utf8', ); }
さてもう一度アクセス
http://hoge01/
Cake is able to connect to the database.
と出たので接続OK
次に全体設定をやる 設定は
D:\hoge01\app\config\core.php
特に設定するわけでなし キーを少し変更
DBにテーブルを作る
CREATE TABLE `hoge01`.`users` ( `id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'ユーザーのID(管理用)', `name` VARCHAR( 256 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT 'ユーザーのニックネーム' ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'ユーザーのテーブル';
ここからschemaを生成
phpにパスを通しておいて、cakeコマンドをcakephpを設置したところで実行」
cake\console\cake schema generate -f
これでshcema.phpがDBの構造がから逆生成されて、こいつがmodel作成の元ネタに使えるのだ