加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

寻找有关PHP会话垃圾收集如何工作的细节

发布时间:2020-12-13 13:55:39 所属栏目:PHP教程 来源:网络整理
导读:PHP有几个会话设置,可以控制垃圾收集(即删除过期的会话)的可能性. 我的问题是:这个概率是否适用于任何给定Apache服务器上所有虚拟主机上运行的所有Apache线程? 例如: 如果概率设置为1/100,这是否意味着运行PHP进程的任何Apache线程都会进入可能运行gc的进
PHP有几个会话设置,可以控制垃圾收集(即删除过期的会话)的可能性.

我的问题是:这个概率是否适用于任何给定Apache服务器上所有虚拟主机上运行的所有Apache线程?

例如:

>如果概率设置为1/100,这是否意味着运行PHP进程的任何Apache线程都会进入可能运行gc的进程池?
>或者,这仅适用于任何给定VirtualHost运行的线程吗?或者其他类型的分区?
>最后,如果一个PHP进程触发gc,它是否在所有PHP会话上执行gc?或者只是VirtualHost的会话?或其他类型的分配?

我正在尝试测量我需要调整给定VirtualHost的gc_probability设置,整个服务器,或者什么.

If the probability is set to 1/100,does that mean that any Apache thread that runs a PHP process goes into the pool of processes that may have gc run?

如果该进程触及session [session_start()],那么是的,它可能会运行垃圾回收.

如果您需要不同的虚拟主机以具有不同的垃圾收集和会话,则应使用session.save_path选项为每个虚拟主机设置不同的路径.您可以在apache虚拟主机配置中使用诸如`php_value session.save_path“/srv/www/www.example.org/sessions”之类的指令执行此操作.如果有多个不同的应用程序运行不同的会话要求,则可能需要设置不同的路径和GC.

老实说虽然PHP会话垃圾收集不是很好.最好完全禁用它并使用从cron启动的脚本来定期清理旧会话.或另一种需要程序支持的替代方法是将会话存储在数据库中.

如果您要为外部方托管东西,那么您几乎肯定希望为每个虚拟主机设置单独的会话目录.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读