session - 如何禁止 Symfony 将 _sess 文件写入我的/tmp 目录

标签 session symfony tmp

我是 symfony 的新手,负责一个不是我建立的站点。由于某种原因,该站点位于实时服务器上但以开发模式运行。 - 我不确定为什么??

除此之外 - 该网站不断将 _sess 文件写入我的/tmp 目录。每个_sess 文件的内容完全相同。见下文:

_symfony2|a:3:{s:10:"attributes";a:0:{}s:7:"flashes";a:0:{}s:6:"locale";s:2:"en";}

我真的需要所有这些文件吗?谁能建议一种禁用此功能的方法?

提前致谢

最佳答案

Symfony2 的默认 session 存储将 session 信息写入文件。这些文件写入的位置由配置参数 framework.session.save_path 确定。它的默认值为 %kernel.cache.dir%/sessions。这意味着在 symfony 的默认安装中, session 文件将被写入环境的缓存目录。

但是,这可能会成为一个问题,因为每次部署应用程序时都必须清除缓存目录,从而使所有用户注销。因此,您的应用可能已配置(很可能在 config.yml 中)以将 session 文件存储在/tmp 中。

据我了解,过期的 session 应该在某个时候被垃圾收集。 Symfony 也有一些影响这一点的配置参数 - 请参阅 FrameworkBundle Configuration .我不知道您的网站有多少流量,但显然您确实需要事件 session 的 session 文件。如果您认为您有很多过期 session ,您可以尝试调整 gc 配置参数。

或者,如果/tmp 中的 session 文件是您可以重新定位它们的具体问题(通过更改 framework.session.save_path 的值)或 use PDOSessionHandler to store sessions in the database .

关于session - 如何禁止 Symfony 将 _sess 文件写入我的/tmp 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16896070/

相关文章:

symfony - 无法使用 Symfony2 功能测试设置 Content-Type

php - 为什么此更新用户密码的代码不起作用?

linux - 从 .bashrc 脚本中止

javascript - 数据库断开连接时如何处理Redis session

symfony - 使用 Doctrine 的 PreUpdate 生命周期事件保留对文档所做的更改

php - Symfony EasyAdminBundle 3 覆盖 createIndexQueryBuilder()

PHP 找不到 tmp 目录

centos - Gwan,未能映射段

mysql - PHP 警告 : [mysql error 3] Error writing file '/tmp/

php - 如何在 PHP 中取消设置 cookie?