2016-01-13 78 views
-1

情況是,我們有一臺本地服務器機器,它上面有Apache,兩個項目在同一臺本地服務器上。Apache會話在同一臺服務器上的工作方式不同

問題是當我們設置session.gc_maxlifetime = 10時,例如,服務器在10秒後註銷項目N1併成功刪除會話文件,但在另一個項目N2上,會話文件未被刪除並且會話未被註銷。

session.gc_probability合和session.gc_divisor都設置爲1。

可能是什麼原因呢? 謝謝。

回答

1

這可能是因爲PHP垃圾收集器,其中可能或不在所需的時間段後刪除會話。見說明:

http://php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime

的session.gc_maxlifetime指定之後 數據將被視爲「垃圾」和潛在清理的秒數。垃圾 集合可能會話開始時發生(取決於 session.gc_probability和session.gc_divisor)。

(重點煤礦)

+0

@Zarebski,謝謝您的回答。概率和除數參數都設置爲1,這與100%相同。所以我們改變可能必須。我不認爲這是這裏的原因... –

+0

我認爲這裏的重要事情是_垃圾收集可能在會話開始_期間發生。如果網站上沒有任何活動,即正在開始的會話,則無論如何GC都不會被激活。它不會像一個單獨的活動一樣尋找垃圾,它只會作爲其他會話處理活動的一部分發生 – RiggsFolly

相關問題