CakePHP2.x」カテゴリーアーカイブ

ロリポップでCakePHP2.xを動かす

ここではCakePHP2.xをロリポップで動かす設定についてまとめています。

ロリポップphp.ini

;mbstring 関連
mbstring.language = neutral
mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = On
mbstring.func_overload = 0
mbstring.http_input = UTF-8
mbstring.http_output = UTF-8
  
;session 関連
session.auto_start = 0
session.use_trans_sid = 0
session.use_only_cookies = 0
  
;apc 関連
apc.enabled = 1
apc.enable_cli = 0
  
;そのほか
default_charset = UTF-8
output_handler = mb_output_handler
output_buffering = 未設定
magic_quotes_gpc = Off
short_open_tag = On
safe_mode = Off
register_globals = Off
allow_url_fopen = On
allow_url_include = Off
upload_max_filesize = 20M
display_errors = On
error_reporting = E_ALL ^ E_NOTICE ^ E_DEPRECATED
asp_tags = Off
variables_order = EGPCS

output_handler = mb_output_handler
$this->redirect();が使えなかったので設定しました。

apc.enabled = 1
php5.3の場合は設定します。

CakePHP2.x core.php

Configure::write(‘debug’, 0);
一瞬だけ3にしてから0に戻してください。
0と3ではパフォーマンスに影響するので必ず0に戻すようにしてください。
0 = 運用モード
1 = エラーと警告
2 = エラーと警告、SQL
3 = エラーと警告、SQL、コントローラのdumpを表示

Configure::write(‘Cache.disable’, true);
サイト全体のキャッシュを無効にする。

これだけで基本動いてくれます。

CakePHP2.x SessionをDBに保存

ここではCakePHP2.xでのSessionの保存先にデータベースを使用する方法を解説していきます。

cakephp

core.phpの編集

/app/Config/core.php

Configure::write('Session', array(
        'defaults' => 'database',
        'ini' => Array(
                //ブラウザを閉じた時にセッションを破棄
                'session.cookie_lifetime' => 0, 
        )
));

defaultsにdatabaseを設定、他にはphp、cakeなどがあります。

Session保存用のテーブル作成

/app/Config/Schema/sessions.sql

CREATE TABLE IF NOT EXISTS `cake_sessions` (
    `id` varchar(255) NOT NULL DEFAULT '',
    `data` text NOT NULL,
    `expires` int(11) DEFAULT NULL,
    PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

これだけでSession情報がDBに登録されるようになります。

CakePHP2.x インストール

ここではCakePHP2.x系のインストールと設定までを行います。

cakephp

CakePHPのダウンロード
http://cakephp.jp/

core.phpの編集

/app/Config/core.php

/**
 * The level of CakePHP security.
 */
    Configure::write('Security.level', 'medium');
  
/**
 * A random string used in security hashing methods.
 */
    Configure::write('Security.salt', 'BeetTakeshi000HitoshiMatumoto111MasatoshiHamada222');
  
/**
 * A random numeric string (digits only) used to encrypt/decrypt strings.
 */
    Configure::write('Security.cipherSeed', '76859304454542496749461235');

解説

182、187、192行目を編集します。
Security.level (4行目)
high、medium、lowの三種類が設定できます。

Security.salt (9行目)
ランダムな英数字に変更してください。

Security.cipherSeed (14行目)
ランダムな数字に変更してください。

database.phpの編集

/app/Config/database.php

class DATABASE_CONFIG {
  
    public $default = array(
            'datasource' => 'Database/Mysql',
            'persistent' => false,
            'host' => 'localhost',
            'login' => 'loginid',
            'password' => 'loginpassword',
            'database' => 'dbname',
            'prefix' => '',
            'encoding' => 'utf8',
    );
}

host、login、password、databaseを設定で完了。