2014-03-13 96 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