PHP session.save_path& session.gc_maxlifetime行为

时间:2013-02-04 11:14:13

标签: php session garbage-collection session-timeout

很抱歉,如果有人在其他地方询问过,但我找不到答案。

我最近创建了一个网站,我第一次大量使用了会话变量。我之前从未打扰调整PHP会话配置,因为它没有必要,会话变量已按预期工作。对于这个网站,我想控制会话的生命周期,所以我需要调整gc_maxlifetime。由于似乎没有0或关闭设置,我已将其设置为31536000(365天),目的是使用PHP脚本控制到期。

我通过我的主机允许的本地php.ini文件设置gc_maxlifetime。我也通过此文件设置save_path,因为gc_maxlifetime如果没有设置似乎不起作用。我认为这是因为当save_path没有值时,会使用所有用户(这是共享服务器)的默认/tmp文件夹,因此您无法调整所有用户的生命周期。 / p>

这一切似乎都很好。我有两个保存位置,一个用于主站点,一个用于CMS,在/absolute/hosting/path/tmp/session/absolute/hosting/path/tmp/session/admin,phpinfo显示正确的值,并查看相关文件夹,我可以看到一堆会话文件。但是,在一两个星期后(我不知道多长时间)我的网站的会话功能完全停止了。根本没有创建新会议。为了解决这个问题,我已经从我的php.ini文件中删除了save_path,但现在我的会话只持续了默认的24分钟。

我最初的想法是/tmp文件夹中可能存在一些文件或文件夹大小限制,但我不知道如何更改它(可能这是一个Apache的事情,我会需要我的托管公司改变),它没有太大意义,无论如何,文件很小(1997年的文件,主站点17KB,文件41个,CMS 9KB),CMS继续工作一周在主站点之后,在以同样的方式失败之前。

有没有人知道这可能是什么原因?

0 个答案:

没有答案