php session过期文件清理,php中session文件过多inode用完,apache无法运行的解决方法...

文章讲述了服务器因PHP session存储在/tmp目录导致Apache内存不足的问题,提出了三种解决方案:1) 使用eAccelerator扩展将session存储在内存中;2) 设置session的二级目录存储以分散负载;3) 定时清理旧的session文件。作者目前采用第三种方法并取得良好效果,建议读者可以尝试第一种方法。
摘要由CSDN通过智能技术生成

由于php程序中大量用到了session,php的session的采用默认的形式保存到/tmp中,服务器出现莫名的错误,主机bash上(本地上!远程看不到)反复提示类似错误:

killed process 21034(apache2)

out of memory :kill process 1247 (apache2) score 28840 or a child.

出现该问题时,曾用过简单的方法:、

直接把/tmp下 的文件清空,重启就好了。

没想到,没过多长时间,问题又重复出现了,而且是一直在出现,看来要花点工夫解决下了。

分享一个我的解决方法,供大家参考。

1、使用内存来保存session

修改php.ini的配置文件

session.save_handler = files

修改为:

复制代码 代码示例:

session.save_handler = eaccelerator

前提是已经安装了:eaccelerator。

2、使用session的分级目录

修改;session.save_path = "/tmp"

修改为:

复制代码 代码示例:

session.save_path = "2;/tmp/session"

使用/tmp/session目录下二级散列目录存储session

php不会自动建立散列目录,需要手动创建相应的目录,并给予权限:

/tmp/session/0/0/

/tmp/session/0/1/

/tmp/session/0/3/

tmp/session/0/4/

……………………

3、用自动清理session

/etc/cron.hourly/下新建文件session

如下:

复制代码 代码示例:

find /tmp/session -amin +180 -exec rm -rf {} \;

说明:

1小时清理一次,清理大于3个小时的session文件。

我目前采用的第三个方法,效果不错。

第一种大家也可以尝试下,看看效果咱样吧。

哪位朋友,有好的方法,也欢迎分享给脚本学堂,大家共同探讨,呵呵。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值