php中session文件过多inode用完,apache无法运行的解决方法
由于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的配置文件
修改为:
前提是已经安装了:eaccelerator。
2、使用session的分级目录
修改;session.save_path = "/tmp"
修改为:
使用/tmp/session目录下二级散列目录存储session
php不会自动建立散列目录,需要手动创建相应的目录,并给予权限:
/tmp/session/0/1/
/tmp/session/0/3/
tmp/session/0/4/
……………………
3、用自动清理session
/etc/cron.hourly/下新建文件session
如下:
说明:
1小时清理一次,清理大于3个小时的session文件。
我目前采用的第三个方法,效果不错。
第一种大家也可以尝试下,看看效果咱样吧。
哪位朋友,有好的方法,也欢迎分享给脚本学堂,大家共同探讨,呵呵。
您可能感兴趣的文章:
php中session文件过多inode用完,apache无法运行的解决方法
有关php中session的疑惑
PHP的Session过期问题深入分析
php session 入门教程
php 不同服务器共享session问题
php session跨域跨服务器的解决方法分享
PHP网站session共享几种方案
php提示”Cannot send session cache limiter
解决php session跨页面传递 session值丢失的问题(图文)
phpmyadmin报错:Cannot start session without errors问题