CakePHPでセッションハンドラにMemcacheを使おうとしたらハマった
CakePHP2.4、php5.5でセッションハンドラにMemcacheを使おうとしたら、落ちました。
原因はsession.auto_startの指定
セッションの設定を1つずつ見ていったところ、わかりました。
session.auto_startはphp5.5.2と5.4.20からPHP_INI_PERDIRに変わったため、
プログラム側でini_set()できなくなり、CakePHPからセットしてはダメだったのが理由でした。
core.php
<?php Configure::write('Session', array( 'defaults' => 'cache', 'cookie' => 'SESSION_NAME', 'timeout' => 240, 'autoRegenerate' => true, 'checkAgent' => true, 'ini' => array( 'session.use_cookies' => '1', 'session.cookie_lifetime' => '0', 'session.cookie_path' => '/', // 'session.auto_start' => '0', // ←コレを指定したらダメ! 'session.use_trans_sid' => '0', 'url_rewriter.tags' => '', 'session.cookie_domain' => '.hogehoge.com', 'session.save_handler' => 'user', 'session.cookie_httponly' => '0', 'session.cookie_secure' => '0', ), 'handler' => array( 'engine' => 'CacheSession', 'config' => 'default', ), )); Cache::config('default', array( 'engine' => 'Memcache', 'duration' => '+3 hours', 'prefix' => 'session:', 'servers' => array('localhost:11211'), ));