抱歉,如果在其他地方问过这个问题,但我找不到答案。
我最近创建了一个网站,我第一次在该网站上大量使用了会话变量。我以前从来没有费心调整 PHP 会话配置,因为它没有必要,会话变量已按预期工作。对于这个站点,我想控制会话的生命周期,所以我需要调整gc_maxlifetime
. 由于似乎没有 0 或关闭设置,我将其设置为 31536000(365 天),目的是使用 PHP 脚本控制到期。
我正在gc_maxlifetime
通过我的主机允许的本地 php.ini 文件进行设置。我也在save_path
通过这个文件进行设置,因为gc_maxlifetime
如果没有设置它似乎不起作用。我认为这是因为当save_path
没有值时/tmp
使用所有用户的默认文件夹(这是一个共享服务器),因此您不应该能够调整所有用户的生命周期。
这一切似乎都运行良好。我有两个保存位置,一个用于主站点,一个用于 CMS,在/absolute/hosting/path/tmp/session
和处/absolute/hosting/path/tmp/session/admin
,phpinfo 显示了正确的值,查看相关文件夹,我可以看到一堆会话文件。但是,一两个星期后(我不知道具体持续了多长时间),我网站的会话功能完全停止工作。根本没有创建新会话。为了解决这个问题,我已经save_path
从我的 php.ini 文件中删除了,但现在我的会话只持续了默认的 24 分钟。
我最初的想法是文件夹内可能存在一些文件或文件夹大小限制/tmp
,但我不知道如何更改它(大概是 Apache 的事情,我需要我的托管公司来更改),无论如何也没有多大意义,文件很小(1997个文件,主站点17KB,41个文件,CMS 9KB),并且CMS在主站点之后工作了一周左右,之前以同样的方式失败。
有谁知道这可能是什么原因?