使用PHP,如果我设置一个自定义会话文件夹来存储会话文件,我该怎么做才能确保旧的会话文件最终被删除?有没有办法让Apache或PHP为我处理这个,或者我是否需要设置一些东西来自己清理这个文件夹?非常感谢有关此主题的任何信息.
我正在使用session_save_path()来更改会话文件夹,如果这有所不同.
只要您不在N;php的session.save_path设置中使用该选项,PHP将根据session.gc_probability/session.gc_divisor/session.max_lifetime设置自动清理陈旧会话
如果您已经推出了自己的会话处理程序,那么您将负责清理.
是的,您需要手动清理它们,因为您已经设置了自己的会话保存路径.(今天它说它只适用于分割目录选项,但我有服务器,即使不使用该功能,但仍然需要使用自定义会话保存路径,而且它是一些PHP 5.2.x,我需要手动清理.)
您可以检查文件的年龄,并删除它是否超过x天/分钟,无论如何:
cd /path/to/sessions; find -cmin +24 | xargs rm
Run Code Online (Sandbox Code Playgroud)
摘自以下部分php.ini:
; NOTE: If you are using the subdirectory option for storing session files
; (see session.save_path above), then garbage collection does *not*
; happen automatically. You will need to do your own garbage
; collection through a shell script, cron entry, or some other method.
; For example, the following script would is the equivalent of
; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
; cd /path/to/sessions; find -cmin +24 | xargs rm
Run Code Online (Sandbox Code Playgroud)
请参阅此相关/重复的问题:清理php会话文件
"单一"命令:
find /path/to/session -name sess_* -cmin +24 -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)