CakePHP 2.x インストール
現在まで私が商用・非商用にリリースしているCakePHPアプリケーションは全て1.3.xベースで作成しています。
まだまだロードマップ的には大丈夫そうですが、お客さん向けに納品しているアプリケーションを2.xに移行する計画を立てたので、まずはフリーで運用しているWebサービスを2.xに移行することに(予定は未定)。マイグレーションツールはあるものの、まずはご作法に慣れましょうということで勉強がてら動かしてみて学習していきたいと思います。
ダウンロード
最新版のダウンロードはこちら
解凍したら
** 全ては表示していません。
直下のディレクトリcakeがlibに改名されている。主要なディレクトリ名が先頭大文字になって複数形から単数形になってますね。何か意味があるのかもしれません。考えてもよく分からないので次=3
サーバに配置してみる
レンタルサーバでなくてもでもいいですが、おそらくここは変わりないだろうという算段で、1.3と同じやりかたでやってみます。(記事)
(*↓フォルダ構成のイメージをつかんでいただくためだけで、全てを表示していません)
"cake24"にしました。
設定
- www/cake24下のindex.phpと.htaccessを編集して下さい。libはCakePHPのライブラリが格納されているディレクトリになりますが、ROOT以下から移動させない場合は、CAKE_CORE_INCLUDE_PATHは定義する必要はありません。
- 'ROOT':CakePHPアプリケーションの本体のディレクトリパスを指定
- 'APP':appのディレクトリ名を指定
- 'CAKE_CORE_INCLUDE_PATH':cakeライブラリ(cakeディレクトリ)を配置したディレクトリのパス
~/www/cake24/index.php
/**
* The full path to the directory which holds "app", WITHOUT a trailing DS.
*
*/
if (!defined('ROOT')) {
// define('ROOT', dirname(dirname(dirname(__FILE__))));
// ROOT => /home/[ユーザ]/cake24
define('ROOT', DS.'home'.DS.'[ユーザ]'.DS.'cake24');
}
/**
* The actual directory name for the "app".
*
*/
if (!defined('APP_DIR')) {
// define('APP_DIR', basename(dirname(dirname(__FILE__))));
define('APP_DIR', 'app');
}
~/www/cake13/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /cake24 #追加する
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
ベースとなるディレクトリはここ(/cake24)ですよ、というのを伝えます。
http://ドメイン/cake24/にアクセスすると

メッセージ(赤)
Notice (1024): Please change the value of 'Security.salt' in APP/Config/core.php to a salt value specific to your application. [CORE/Cake/Utility/Debugger.php, line 846] 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/Utility/Debugger.php, line 850]
要対処の箇所になります。
app/Config/core.php内のSecurity.salt(アルファベットと数字)とSecurity.cipherSeed(数字のみ)の値を任意に変更して下さい。
移行する場合は、移行元と同じ値を設定する必要があります。(パスワードのハッシュ値生成に使用される値ですので、違う値にすると変換されるハッシュ値が変わってしまいます。)
メッセージ(青/緑)
情報です。対処不要
Your version of PHP is 5.2.8 or higher. Your tmp directory is writable. The FileEngine is being used for core caching. To change the config edit APP/Config/core.php
メッセージ(黄)
Your database configuration file is NOT present. Rename APP/Config/database.php.default to APP/Config/database.php DebugKit is not installed. It will help you inspect and debug different aspects of your application. You can install it from GitHub
警告です。対処必須ではないです。
1つ目の警告は、データベースを使用する場合は、app/Config/database.phpを作成して設定を行って下さい。
SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
と言われたら、設定を確認して下さい。
参考:複数データベースの追加と切替
2つ目の警告は、DebugKitをインストールするようにということです。
参考:DebugKitを導入
どうやら、初期設定部分は変わりないようです。
関連記事
-
-
CSS/JSをひとまとめにして軽量化するプラグイン「Minify plugin for CakePHP」
「Minify plugin for CakePHP」は、インクルードするCSSもしくはJSファイルをひとまとめにしてキャッシュ化してくれるプラグインです。 導入 ダウンロード・解凍し
-
-
複数ファイルアップロードフォーム
CakePHP 2.0からはHTML5が標準でサポートとなり、複数ファイルアップロードのためのフォーム記述が容易になりました。 View (ビュー) 配列 Array (
-
-
ハッシュ関数の選択とハッシュ化処理
CakePHPでは、ログイン時にはpasswordを自動的にハッシュ化して認証を行ってくれますが、そのパスワードを登録する際は、明示的にハッシュ化する必要があります。 ハッシュ関数の選択 ハッ
-
-
FullCalendarを使用してカレンダーアプリケーション
カレンダーアプリケーションを作成するため、カレンダー表示できるプラグインを探索して出会ったFullcalendarを試してみました。シンプルに使用できる上に、オプションがかなり豊富です。ダウンロード
-
-
SQLクエリーをログに出力する
SQLのクエリーをデバッグするには、Debug Kitを使用すればできますが、デバッグログと一緒に出したいのでやり方を調査してみました。 別々のログやビューでみるのもいいですが、秒単位で実行される処
-
-
Syslogログエンジン
2.4から「Syslog」ログクラスが追加され、簡単にSyslogを使用できるようになりました。 CakePHP側の設定はbootstrap.php内のCakeLogコンフィグのengineを'Sy
-
-
ネストしたリストを出力「nestedList」
DBやJSONからデータを取得して、そのデータをもとにメニュー表示などネストしたリストを出力させたい場合に「nestedList」が便利です。 ヘルパーに渡すデータは連想配列である必要があります。(
-
-
CakePHP インストール時エラーの対処
CakePHPインストール時に出くわすであろうエラーの原因と対処方法についてまとめてみました。前提として、WebサーバはApache、データベースはMySQLとしています。 Timezone未設
-
-
ログインに追加の条件を付与する「scope」
ユーザ登録では、仮登録処理(status=1)から送付したメール内のリンクをクリックしてもらい本登録(status=0)を行ってもらう実装をしました。仮登録の状態ではログインできないように実装するには
-
-
多言語サイト向けに翻訳ファイルを使って翻訳を行う
CakePHPには、翻訳をビヘイビアを使用する方法と翻訳ファイルを使用する方法の2つがあるそうです。(他にもあるのかな?) 今回は、翻訳ファイルを使用して言語の切り替えを行い、その言語設定をCook




