同一域中Cakephp的不同实例的多个会话

Man*_*tel 4 cakephp

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

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

如果您登录第一个实例并访问instance2,将会看到已经登录。这是因为Cakephp默认情况下使用PHP Session存储机制。

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

将方法从php更改为cake将使Cakephp将Session变量存储在app / tmp / sessions目录中。如果这样做,请记住创建该目录并为其赋予适当的权限。

贴吧,您要做的就是为每个Cakephp实例拥有单独的会话。

小智 5

请打开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  
    ));
Run Code Online (Sandbox Code Playgroud)

对于www.example.com/instance2

Configure::write('Session', array(
        'defaults' => 'database',
        'ini' => array(
            'session.cookie_path' => '/instance2',
        ),
        'cookie' => 'instance2',
        'cookieTimeout' => 0,   
           'checkAgent'  => false  
    ));
Run Code Online (Sandbox Code Playgroud)