我是 symfony 的新手,负责一个我没有建立的网站。由于某种原因,该站点位于实时服务器上,但在开发模式下运行。- 我不知道为什么?
除此之外 - 该网站不断将_sess文件写入我的 /tmp 目录。每个_sess文件的内容完全相同。见下文:
_symfony2|a:3:{s:10:"attributes";a:0:{}s:7:"flashes";a:0:{}s:6:"locale";s:2:"en";}
我真的需要所有这些文件吗?谁能建议一种禁用此功能的方法?
提前致谢
Symfony2 的默认会话存储将会话信息写入文件。这些文件写入的位置由配置参数 framework.session.save_path 确定。其默认值为 %kernel.cache.dir%/sessions。这意味着在 symfony 的默认安装中,会话文件将被写入环境的缓存目录。
但是,这可能是一个问题,因为每次部署应用程序时都必须清除缓存目录,从而将所有用户注销。因此,大概您的应用程序已配置(很可能在 config.yml 中)以将会话文件存储在 /tmp 中。
据我了解,过期的会话应该在某个时候被垃圾收集。Symfony 也有一些影响这一点的配置参数 - 请参阅FrameworkBundle 配置。我不知道您的网站有多少流量,但显然您确实需要活动会话的会话文件。如果你认为你有很多过期的会话,你可以尝试调整 gc 配置参数。
或者,如果在 /tmp 中有会话文件是特别的问题,您可以重新定位它们(通过更改 framework.session.save_path 的值)或使用 PDOSessionHandler 将会话存储在数据库中。
我继承的一个网站上的 symfony 1.4.20 有这个问题。它正在将文件写入
/var/lib/php/sessions
每秒,直到服务器用完 iNode。我尝试更改 settings.yml 中的设置。app.yml 和 PHP 会话变量。虽然没有任何效果,但我可以阻止它的唯一方法是将 /var/lib/php/sessions 的所有权更改为 root 并阻止创建任何会话文件。