PHP会话_id()为空,但会话_status()处于活动状态

PHP会话_id()为空,但会话_status()处于活动状态,php,Php,我正在运行一个使用PHP会话的网站。99.9%的时间这一切正常,但每天有几次会话_id()被设置为空。在经历这些问题的页面类型或访问者类型中没有明显的模式 奇怪的是,session\u id()返回一个空字符串,但是session\u status()仍然设置为2(PHP\u session\u ACTIVE)。有人知道这是怎么发生的吗?这意味着什么样的问题 从我在文档中找到的所有信息来看,session\u id() 在脚本向浏览器输出任何内容之前,请确保正在调用会话\u start() 检查

我正在运行一个使用PHP会话的网站。99.9%的时间这一切正常,但每天有几次会话_id()被设置为空。在经历这些问题的页面类型或访问者类型中没有明显的模式

奇怪的是,
session\u id()
返回一个空字符串,但是
session\u status()
仍然设置为2(
PHP\u session\u ACTIVE
)。有人知道这是怎么发生的吗?这意味着什么样的问题


从我在文档中找到的所有信息来看,
session\u id()

在脚本向浏览器输出任何内容之前,请确保正在调用
会话\u start()


检查Apache是否具有会话路径的写访问权限;我的是
/tmp

会话,会话数据存储在文件中。也许在那些时刻那些文件发生了什么事?系统垃圾清理tempfiles或其他东西,导致会话文件在仍处于活动状态时被删除?嗯,这会导致ID为空但状态为活动的奇怪模式吗?我怀疑这可能与打开文件的数量有关,但这很难调试,因为它是断断续续的。是否有任何我可以检查的东西可以表明这是否是问题所在?查看是否有垃圾收集守护进程运行以清理临时文件。看看他们做事情的频率和方式。如果您知道是哪个守护进程负责,您可能可以设置一个设置,只对超过12小时的文件执行此操作(除非您的站点非常繁忙,无法腾出磁盘空间,但我怀疑在当今这个时代)