CakePHP 2.x インストール

cakephp

現在まで私が商用・非商用にリリースしているCakePHPアプリケーションは全て1.3.xベースで作成しています。
まだまだロードマップ的には大丈夫そうですが、お客さん向けに納品しているアプリケーションを2.xに移行する計画を立てたので、まずはフリーで運用しているWebサービスを2.xに移行することに(予定は未定)。マイグレーションツールはあるものの、まずはご作法に慣れましょうということで勉強がてら動かしてみて学習していきたいと思います。

ダウンロード

最新版のダウンロードはこちら

解凍したら

** 全ては表示していません。

直下のディレクトリcakeがlibに改名されている。主要なディレクトリ名が先頭大文字になって複数形から単数形になってますね。何か意味があるのかもしれません。考えてもよく分からないので次=3

サーバに配置してみる

レンタルサーバでなくてもでもいいですが、おそらくここは変わりないだろうという算段で、1.3と同じやりかたでやってみます。(記事)
(*↓フォルダ構成のイメージをつかんでいただくためだけで、全てを表示していません)

"cake24"にしました。

設定

  1. www/cake24下のindex.phpと.htaccessを編集して下さい。libはCakePHPのライブラリが格納されているディレクトリになりますが、ROOT以下から移動させない場合は、CAKE_CORE_INCLUDE_PATHは定義する必要はありません。
  2. ~/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');
    }
    
    • 'ROOT':CakePHPアプリケーションの本体のディレクトリパスを指定
    • 'APP':appのディレクトリ名を指定
    • 'CAKE_CORE_INCLUDE_PATH':cakeライブラリ(cakeディレクトリ)を配置したディレクトリのパス

    ~/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/にアクセスすると
    CakePHP 2.4 Installation

    メッセージ(赤)

    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を導入

どうやら、初期設定部分は変わりないようです。

  • このエントリーをはてなブックマークに追加

関連記事

cakephp

selectボックスを実装

今まで、selectボックスのgroupを作成するのにSet::Combineを使用していましたが、意外と簡単にできることに気付いてしまったので、ご紹介。(自分だけ知らなかったことに気付いた と言った

cakephp

アップロードファイルのバリデーションルール

CakePHP 2.2や2.3になってファイルアップロードに対するルールがコアバリデーションに追加されているようで、まとめてみました。 コアバリデーション 関連しそうなルールは以下の4つの

cakephp

ログローテーション

CakePHP 2.xではbootstrap.php内にあらかじめアプリケーションログの設定が書かれています。2.xで日付ごとにログファイルが切り替わるよう設定してみました。 日ごとにログを切り替え

cakephp

(メール・URL・電話・郵便・IP) データ バリデーション

今回は、プロフィール情報に使用されるデータに絞ったバリデーションルールです。 バリデーションルール 以下の5つのバリデーションルールがコアに用意されています。 email メールアドレス

cakephp

FormヘルパーのMagicOption (マジックオプション) 

Formヘルパーでは、「フィールド名」,「テーブルカラムのデータ型」もしくはモデルの「バリデーション設定」によりフォーム要素を決定したり、自動で属性を付与する「マジックオプション」と呼ばれるものがある

cakephp

recursive設定によるfind()性能改善

CakePHPでは、モデルにアソシエーションを設定している場合、recursive(=>joinする階層)はデフォルトで0に設定されています。「recursiveゼロ」の意味するところとは、「1跨ぎま

no image

radioボタンを実装

Radioボタンの実装は、セレクトボックスとほぼ同じです。 個人的にはラジオボタンをすすんで使用することは少ないのですが、2択くらいの選択肢であれば非常に便利ですよね。 今回は、その実装方法 デモ

cakephp

FullCalendarを使用してカレンダーアプリケーション

カレンダーアプリケーションを作成するため、カレンダー表示できるプラグインを探索して出会ったFullcalendarを試してみました。シンプルに使用できる上に、オプションがかなり豊富です。ダウンロード

cakephp

コントローラ内でバリデーション処理を呼び出す

CakePHPでは、saveメソッドの際にバリデーション処理も自動で行われますが、save処理と切り離してバリデーションを行うこともできます。このときは、save時と若干異なる処理体系になります。

cakephp

hasOne アソシエーション

hasOneアソシエーションはテーブル間で1つのレコードに対して他のテーブルに紐付くレコードが1つの場合にjoinする場合に使用します。 CakePHPのドキュメントにならってUserモデルとP

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

PAGE TOP ↑