2016-06-20 34 views
1

我的服務器提供商從數據中心移出。雖然移動出了問題,並且我們專用的數據庫服務器的電源供應失敗。他們建立了一個新的虛擬數據庫作爲備份計劃,所以我們可以繼續繼續。我放回了數據的備份。然而,在此之後,Yii會議似乎不再起作用。只需指定,只有數據庫受到影響。我的代碼就像它一樣,沒有改變。Yii會話在更改數據庫服務器後停止工作

當我嘗試框架以外是這樣的:

session_start(); 
$_SESSION["test"] = 100; 

還是能夠工作。它會存儲和我可以使用會話變量,如你所期望的。但是,當我使用Yii代碼如Yii::app()->session["test"] = 100。我不記得這些數據。

的額外信息

  • 餅乾做的工作。如果他們不工作。每次在頁面重新加載時我都會彈出一個對話框。所以一定要這樣。
  • 「Cookie中的sessionID每次在頁面重新加載時都會更改」更正:似乎cookie在atm中沒有更改。
  • 沒有會話文件在服務器上找到(我認爲這可能是問題?)
  • 會話文件位置是可寫(測試在PHP is_writable(Yii::app()->session->savePath)返回true)
  • YiiSession表正被更新(清除了並且它再次填充)
  • Main.php config不包含會話的組件(因此一切都是默認的)
  • 我試圖設置一些會話設置,包括自動創建數據庫表。我刪除了表格,並且它自動再次創建。
  • YiiSession表包含ID和到期
  • 雖然到期日期似乎很短,但仍設置以及在未來
  • 從專用服務器去了一個臨時的虛擬服務器(無論運行的CentOS 6.6 + MySQL的)。
  • 會話存儲在未受更改影響的虛擬服務器上。
  • 的Yii ::應用程序() - >的getSession() - > getSessionId()返回的sessionId

任何建議可能是什麼問題?在數據庫服務器發生更改後,這個問題很奇怪。

BIG注意:只是注意到在某些設置文件中有一個組件 - >會話。看來我們使用一個自定義的HttpSession。我想這個問題可能在那裏。將看起來它(看看爲什麼以前的開發人員決定爲此創建一個自定義類),然後使用默認選項,看看是否修復它。

+0

選中此項:http:// stackoverflow。com/questions/20965023/sessions-in-yii – C2486

+0

@Rishi謝謝你的回覆。就像我提到的。有效。它一直在工作多年。據我所知,唯一的變化是我們有一個新的數據庫服務器。代碼中沒有其他變化。 – Jeroen

回答

0

看來我們在哪裏使用自定義類。我禁用了這個,只是增加了設置

'session' => array (
     'autoStart' => true, 
    ), 

這似乎現在工作。如果我在自定義類中找到導致此問題的具體內容,請編輯此答案。事實仍然是這個很奇怪。我甚至都沒有意識到這個習慣課,更不用說改變它了。