2

所以应用程序没有对缓存做任何事情,我只是使用 config.yml 中的默认框架设置

framework:
    # ...
    session:         ~

在看

project/app/cache/prod/session 

目录我看到 6 个月前的会话文件,它导致 DISK FULL 错误/问题。

如果我运行命令

df -h

如果我运行命令,磁盘空间看起来不错

df -i

我看到它已满或几乎已满

对于 php.ini,它都是默认设置,运行 ubuntu 12.04 LTS 和 PHP 5.3.x

为什么垃圾收集不起作用?当我清除缓存时它很好并且清理了,但据我了解,会话应在 4 小时后删除,有什么想法吗?

4

1 回答 1

5

如果其他人有这个问题,这里是如何解决它:

这里是配置的

  • /etc/php5/apache/php.ini
  • /etc/php5/cli/php.ini
  • /etc/php5/fpm/php.ini

(三个都一样)

session.gc_probability = 0
session.gc_divisor = 1000
session.gc_maxlifetime = 1440

我也看过

/etc/cron.d/php5 

它应该使用这个值删除会话session.gc_maxlifetime

# /etc/cron.d/php5: crontab fragment for php5
#  This purges session files older than X, where X is defined in seconds
#  as the largest value of session.gc_maxlifetime from all your php.ini
#  files, or 24 minutes if not defined.  See /usr/lib/php5/maxlifetime

# Look for and purge old sessions every 30 minutes
09,39 *     * * *     root   [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete

问题是我的会话不在标准位置,因此没有清理。

将框架会话 save_path 配置为:

/var/lib/php5

您还可以通过将该值设置为 null 来将此值设置为 php.ini 的 save_path:

# app/config/config.yml
framework:
    session:
        save_path: null

文件:

于 2013-07-25T17:02:41.393 回答