您是否知道如果您在相同域中的Cakephp中运行同一应用程序的多个实例,它们将共享同一个会话?例如,假设您运行的实例为:
www.example.com/instance1和www.example.com/instance2
如果您登录第一个实例并访问instance2,您将看到您已经登录。这是因为Cakephp默认情况下使用PHP会话存储机制。
如果这不是您期望的行为,Cakephp允许您从会话处理方法的三个选项中进行选择:php(默认),cake和database。当前方法存储在app / config / core.php中的Session.save变量中。
将方法从php更改为cake将使Cakephp将Session变量存储在app / tmp / sessions目录中。如果您这样做,请记住创建并为此目录提供适当的权限。
Voilá,您需要做的就是为每个Cakephp实例分别设置Sessions。
答案 0 :(得分:4)
请打开core.php&更改应用程序cookie路径,然后会话将根据应用程序cookie路径存储 适用于www.example.com/instance1
Configure::write('Session', array(
'defaults' => 'database',
'ini' => array(
'session.cookie_path' => '/instance1',
),
'cookie' => 'instance1',
'cookieTimeout' => 0,
'checkAgent' => false
));
www.example.com/instance2
Configure::write('Session', array(
'defaults' => 'database',
'ini' => array(
'session.cookie_path' => '/instance2',
),
'cookie' => 'instance2',
'cookieTimeout' => 0,
'checkAgent' => false
));