2013-06-03 68 views
1

我是symfony的新手,並且對我沒有構建的網站負責。出於某種原因,該網站位於實時服務器上,但以開發模式運行。 - 我不知道爲什麼?如何禁用Symfony將_sess文件寫入我的/ tmp目錄

除此之外 - 網站一直將_sess文件寫入我的/ tmp目錄。每個_sess文件的內容完全相同。見下:

_symfony2|a:3:{s:10:"attributes";a:0:{}s:7:"flashes";a:0:{}s:6:"locale";s:2:"en";} 

我真的需要所有這些文件嗎?任何人都可以提出一種禁用此功能的方法嗎?

在此先感謝

+0

我不認爲這是一個正常的行爲,我認爲這是一個在項目中設計的功能(而不是從Symfony2本身),也許是一個聽衆?或者也許是在你的機器上安裝了一個監控軟件,它在tmp中記錄會話(_sess)? – Sybio

+0

那麼如果你看看_sess文件中的數據(在上面發佈),它包含字符串'_symfony2',所以它必須由symfony2網站生成。你能提出一種防止這種情況發生的方法嗎? –

回答

0

Symfony2中的默認會話寫入存儲設備(S)的會話信息文件。這些文件寫入的位置由配置參數framework.session.save_path確定。這個默認值是%kernel.cache.dir%/ sessions。這意味着在symfony的默認安裝中,會話文件將寫入環境的緩存目錄。

但是,這可能是一個問題,因爲每次部署應用程序時都必須清除緩存目錄,從而將所有用戶記錄下來。因此,大概你的應用程序已經被配置(很可能在config.yml中)來將會話文件存儲在/ tmp中。

據我所知,已經過期的會話應該在某個時候被垃圾收集。 Symfony也有一些配置參數影響這一點 - 請參閱FrameworkBundle Configuration。我不知道您的網站有多少流量,但顯然您確實需要活動會話的會話文件。如果你認爲你有很多過期的會話,你可以嘗試調整gc config params。

或者,如果具有/ tmp中的會話文件具體是您可以重定位它們(​​通過更改framework.session.save_path的值)或use PDOSessionHandler to store sessions in the database的問題。

+0

很好的答案,非常翔實。我會研究你提出的問題並報告回去...... –

相關問題