【问题标题】:Configure CakePHP 2.* session and session cache in database在数据库中配置 CakePHP 2.* 会话和会话缓存
【发布时间】:2017-02-14 18:20:00
【问题描述】:

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

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

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

如何处理会话并在数据库中缓存。

【问题讨论】:

  • 为什么不使用内置的会话处理程序?
  • @Ayaouc 是否适用于负载均衡器

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


【解决方案1】:

我不了解负载平衡器,但您可以通过多种方式处理会话,包括使用数据库。

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

首先创建这个表:

CREATE TABLE `cake_sessions` (
    `id` varchar(255) NOT NULL DEFAULT '',
    `data` text,
    `expires` int(11) DEFAULT NULL,
    PRIMARY KEY (`id`)
);

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

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'
            )
        )
));

【讨论】:

  • 我试过你的配置,但没有数据保存在数据库中
  • 你能邀请我进群聊吗
猜你喜欢
  • 2011-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-20
  • 1970-01-01
  • 1970-01-01
  • 2014-07-10
  • 2012-05-28
相关资源
最近更新 更多