gpt4 book ai didi

php - 即使 session.gc_probability 设置为 0,Symfony 也会在 Ubuntu 14.04 上调用 PHP 垃圾收集器

转载 作者:IT王子 更新时间:2023-10-29 00:00:56 27 4
gpt4 key购买 nike

由于某些原因,我的 Symfony 2.5 应用程序正在调用 php 垃圾收集器,即使我的所有 php.ini 文件都有:

session.gc_probability = 0

有谁知道如何防止这种情况发生?

我得到的错误信息:

Notice: SessionHandler::gc(): ps_files_cleanup_dir: opendir(/var/lib/php5)
failed: Permission denied (13) in /<path-to-my-site>/var/cache/dev/classes.php line 432

来自 PHPINFO():

Directive               Local Value   Master Value
session.gc_divisor 1000 1000
session.gc_maxlifetime 86400 86400
session.gc_probability 0 0

我知道我可以将 www-data 用户权限授予 /var/lib/php5 文件夹或将 session.save_path 更改为 www-data 用户已经可以访问,但我想知道为什么这个进程在应该被禁用时甚至被调用。

最佳答案

我找到了,我猜最新版本的 symfony 在使用 app_dev.php 时会默认覆盖这个。 Symfony FrameworkBundle 正在设置 session.gc_probability = 1

从 Symfony 3 开始

但是,一些操作系统会进行自己的 session 处理并将 session.gc_probability 变量设置为 0 以停止 PHP 进行垃圾收集。这就是为什么 Symfony 现在将此值覆盖为 1。

如果您希望使用 php.ini 中设置的原始值,请添加以下配置:

# config.yml
framework:
session:
gc_probability: null

https://symfony.com/doc/current/components/http_foundation/session_configuration.html#configuring-garbage-collection

以前的 2.x 版本

要更改此设置,请将以下内容添加到您的 config.yml

framework:
session:
gc_probability: 0

然后清除开发缓存

php app/console cache:clear

这里显示默认为 1gc_probability。为什么他们不只是从 php.ini 设置中读取我不确定。

http://symfony.com/doc/2.5/reference/configuration/framework.html#gc-probability

关于php - 即使 session.gc_probability 设置为 0,Symfony 也会在 Ubuntu 14.04 上调用 PHP 垃圾收集器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25454675/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com