2013-12-23 64 views
4

您是否知道如果您在同一个域中的Cakephp中运行同一个应用程序的多个实例,它们将共享相同的Session?例如,假设你有实例在运行:同一个域中Cakephp的不同实例的多个会话

www.example.com/instance1和www.example.com/instance2

如果您在第一时间和访问INSTANCE2登录,你会看到你将会被登录。发生这种情况是因为CakePHP默认使用PHP Session存储机制。

如果这不是您期望的行为,Cakephp允许您从会话处理方法的三个选项中进行选择:php(默认),蛋糕和数据库。当前方法存储在app/config/core.php中的Session.save变量中。

将方法从php更改为cake将使Cakephp将会话变量存储在app/tmp/sessions目录中。如果你这样做,记得创建并给这个目录适当的权限。

Voilá,这就是你需要做的每个Cakephp实例都有单独的Sessions。

回答

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 
    )); 
相关问题