2014-03-13 101 views
1

我使用Zend Framework for PHP並使用Zend_Session模塊處理會話。我注意到有很多會話文件被創建,儘管我幾乎是在開發過程中使用它的唯一一個。目前在同一臺服務器上運行兩個Zend站點,因此我決定將會話文件位置臨時更改爲另一個目錄,以僅查看由我的站點創建的文件。Zend - 每分鐘新會話

我注意到,每分鐘,正在創建一個新的會話文件,無論我做什麼。即使當我註銷或關閉瀏覽器時,仍然總是每分鐘創建一個,此刻,總是恰好在一分鐘後的11秒。當我瀏覽我的網站並使用功能時,會創建1或2個其他會話文件,這是正常的。

之前,我改變了會議文件的位置,在時間的會議文件的數量會像5幾乎每隔幾秒鐘增加,總數爲200一樣會話文件要3000左右,有時。我不知道這是否是Zend的正常行爲,但我覺得很奇怪。

如果有人可以幫助,這將不勝感激。謝謝!

編輯

這是我的application.ini文件。已註釋掉的行是我所做的臨時更改默認位置以僅查看來自我的應用程序的會話。

[production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 
phpSettings.date.timezone = "America/Montreal" 
includePaths.library = APPLICATION_PATH "/../library" 
bootstrap.path = APPLICATION_PATH "/Bootstrap.php" 
bootstrap.class = "Bootstrap" 
resources.frontController.params.displayExceptions = 1 
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" 
resources.layout.layoutpath = APPLICATION_PATH "/layouts/scripts/" 
resources.view.helperPath.App_View_Helper_ = APPLICATION_PATH "/views/helpers" 
;resources.session.save_path = APPLICATION_PATH "/tmp/TestSessions/" 

appnamespace = "Application" 
autoloaderNamespaces[] = "HTMLPurifier" 
autoloaderNamespaces[] = "ZC" 
autoloaderNamespaces[] = "ZendX" 

[staging : production] 

[testing : production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 

[development : production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 

EDIT 2

我獲得了'的access.log文件,以及我發現這一點:

127.0.0.1 - - [13/Mar/2014:15:08:12 -0400] "GET/HTTP/1.1" 200 6356 "-" "-" 
127.0.0.1 - - [13/Mar/2014:15:09:12 -0400] "GET/HTTP/1.1" 200 6356 "-" "-" 
127.0.0.1 - - [13/Mar/2014:15:10:12 -0400] "GET/HTTP/1.1" 200 6356 "-" "-" 
127.0.0.1 - - [13/Mar/2014:15:11:11 -0400] "GET/HTTP/1.1" 200 6356 "-" "-" 
127.0.0.1 - - [13/Mar/2014:15:12:11 -0400] "GET/HTTP/1.1" 200 6356 "-" "-" 
127.0.0.1 - - [13/Mar/2014:15:13:12 -0400] "GET/HTTP/1.1" 200 6356 "-" "-" 
127.0.0.1 - - [13/Mar/2014:15:14:12 -0400] "GET/HTTP/1.1" 200 6356 "-" "-" 

顯然,它已經持續了自去年11月。我在文件中進行了搜索,自11月份以來,127.0.0.1次被請求超過17萬次。它被調用的時間會隨着時間的推移略有變化,但每分鐘一次。 (我也看到使用該網站包括我自己在內的其他人的請求。)

+0

@ doydoy44我編輯了我的原始問題以包含我的application.ini文件。 – Brendan

+1

檢查您的訪問日誌,以查看您的應用程序的名稱和位置。也許有一個正在運行的cron作業或其他正在加載頁面的進程。只有當您的應用程序正在被訪問時才創建會話,並且只有當任何客戶端點擊您的站點時纔會發送會話cookie,纔會創建新會話,因此每個請求都會啓動一個新會話。 – drew010

+0

@ drew010我在等我的同事回來,他有root權限,並且能夠檢查訪問日誌。在那之前,我做了更多的測試,看起來你可能會做些什麼。仍然試圖找出什麼,爲什麼.. – Brendan

回答

1

試一下:
在您的應用程序,添加目錄APPLICATION_PATH "/../tmp"

增加生產:

resources.session.use_cookies = true 
resources.session.use_only_cookies = true 
resources.session.use_trans_sid = off 
resources.session.strict = off 
resources.session.remember_me_seconds = 0 
resources.session.name = "YourNameSession" 
resources.session.gc_divisor = 1000 
resources.session.gc_maxlifetime = 600 
resources.session.gc_probability = 1 
resources.session.save_path = APPLICATION_PATH "/../tmp" 

加入開發:

resources.session.remember_me_seconds = 0 
resources.session.gc_divisor = 10 
resources.session.gc_maxlifetime = 8600 
resources.session.gc_probability = 1 

我不是會議的專家。 如果本示例解決了您的問題,請在Google上研究這些參數的解釋並對其進行調整。

+0

感謝doydoy44,我嘗試了你所說的,但它仍然每分鐘創建一次會話。但是使用你給我的東西,我改變了這些值,並使垃圾收集器能夠100%運行,並將最大壽命設置爲59秒。通過這樣做,我注意到@ drew010說的實際上可能是原因。當新會話每分鐘出現時,垃圾收集器就會關閉,這意味着每分鐘都會有一些確實似乎在請求我的頁面。仍然試圖找出什麼,爲什麼.. – Brendan

+0

@Brendan謝謝你的回報。我也同意drew010。如果我有其他想法,我會說。祝你好運。 :) – doydoy44