在数据库

时间:2017-02-14 18:20:00

标签: php session cakephp nginx elastic-load-balancer

当我切换到AWS Load Balancer(多服务器)时,Session应保持唯一。当我以前登录我的网站时,会话丢失并重定向到主页。所以我尝试使用以下代码在DB中存储会话。

Configure::write('Session', array(
    'defaults' => 'database',
    'handler' => array(
        'model' => 'cake_sessions'
    )
));

但是当管理员用于注销时,它用于存储会话数据。我试图配置cake session handler interface失败。

如何在数据库中隐藏会话和缓存。

1 个答案:

答案 0 :(得分:0)

我不知道负载均衡器,但您可以用serval方式处理会话,包括使用数据库。

这是使用数据库进行会话的CakePHP的默认配置。

首先创建此表:

Configure::write('Session', array(
    'database' => array(
            'cookie' => 'CAKEPHP',
            'timeout' => 240,
            'ini' => array(
                'session.use_trans_sid' => 0,
                'url_rewriter.tags' => '',
                'session.use_cookies' => 1,
                'session.cookie_path' => static::$path,
                'session.save_handler' => 'user',
                'session.serialize_handler' => 'php',
            ),
            'handler' => array(
                'engine' => 'DatabaseSession',
                'model' => 'Session'
            )
        )
));

然后,在app / core.php中配置会话

inserts