2013-12-23 92 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 
    )); 
相關問題