删除自定义集会话文件夹中的旧会话文件


Deleting old session files from custom set session folder?

使用PHP,如果我设置一个自定义会话文件夹来存储会话文件,我必须做些什么来确保旧的会话文件最终被删除?有没有办法让Apache或PHP为我处理这个问题,或者我需要设置一些东西来清理这个文件夹吗?如能提供有关这方面的信息,我将不胜感激。

我目前正在使用session_save_path()来更改会话文件夹,如果这有区别的话。

只要你不使用N;选项在php的会话。save_path设置时,PHP将根据会话自动清除过时的会话。Gc_probability/session。gc_visor/session。max_lifetime设置

如果您已经滚动了自己的会话处理程序,您将负责清理。

是的,您需要手动清理它们,因为您已经设置了自己的会话保存路径。(今天它说这是分割目录选项,但我有服务器,这仍然需要即使不使用该功能,但使用自定义会话保存路径,这是一些PHP 5.2。x和我需要手动清理。)

你可以检查一个文件的年龄,如果它超过x天/分钟,你可以删除它。

cd /path/to/sessions; find -cmin +24 | xargs rm

摘自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
清理php会话文件

"单一"命令:

find /path/to/session -name sess_* -cmin +24 -exec rm {} ';

您需要定期清理自定义PHP会话目录。您可以运行一个CRON作业来处理@hakre

的答案。

我们使用Plesk,它有一个方便的CRON/任务管理器在Tools &设置>计划任务。您可以创建一个新任务,并在设定的时间间隔内运行脚本/命令。

另一点是,如果您在共享服务器上或会话目录与其他站点/资源共享,则运行自定义会话路径是非常好的。

我在这里发布这个答案/主题是有用的,我没有找到太多的在线建议自定义PHP session_path