我可以安全地删除/ var/lib/php5中的所有内容吗?

Moa*_*oak 13 php session

我有超过500万个会话文件,/var/lib/php5 我想删除此文件夹中的所有文件rm *,但是我不确定是否有除该目录中不应删除的会话文件之外的其他文件.

通过SSH,花了几分钟来计算文件数,我不确定我是否可以使用所有这些随机文件名在那里导航.设置是ubuntu lucid linx,apache 2和php5.在最常见的设置中有其他文件夹/文件/var/lib/php5,我不应该删除?

编辑我想删除文件的原因是因为我将会话处理移动到数据库并且不再需要任何文件.

Aar*_*off 23

cd /var/lib/php5
find . -name "sess_*" -print | xargs rm -v
Run Code Online (Sandbox Code Playgroud)

  • 因为文件数量过多,`rm`会因"参数列表太长"错误而过早退出,而实际上并没有删除任何文件.使用`find`查找文件并将结果逐个传递给`xargs`,围绕此限制.[更多信息](http://www.moundalexis.com/archives/000035.php) (14认同)

Che*_*ery 13

让PHP的gc自己执行清理.找到php.ini并更改session.gc_probability为更大的东西,保存并重新启动Apache(调用任何PHP脚本).它在这里说http://somethingemporium.com/2007/06/obscure-error-with-php5-on-debian-ubuntu-session-phpini-garbage

在Debian和Ubuntu中,存储会话数据的/ var/lib/php5具有drwx-wx-wt的权限,并且只能由cron脚本清除.因此,包维护者禁用自动会话垃圾收集.

或者你可以尝试ini_set('session.gc_probability', 100); session_start();在你的session.gc_divisor一个脚本中放置(如果你的等于100)并调用它.最好的方法是放入空的php文件,因为它可能会在很长一段时间内执行清理.

ps:我也会尝试离开session.gc_probability1并设置session.gc_divisor为1.它应该在每次运行时调用gc,但是你需要它只是为了清理目录.

并检查你的cron /etc/cron.d/php5- 它应该每半小时运行一次以清除/ var/lib/php5 /目录中的会话文件.

pps:发现有趣的评论

这不会禁用它(它被注释掉).仍然使用引擎中的默认值 - phpinfo()显示值为1. Debian中的垃圾收集存在问题(因此Ubuntu),但这是由于PHP想要清除已被cron删除的垃圾脚本.这会导致可能在不幸页面上显示的错误.