更改session目录

来源:互联网 发布:python 网站 编辑:程序博客网 时间:2024/06/06 11:04

之前线上的项目(thinkphp,阿里云服务器)无法访问,发现是服务器节点满了
这个环境有点奇葩,系统的节点用的差不多了,但是挂载了一个额外的云盘,节点剩了很多,之前就是把本来放到系统盘里面的项目移动到了额外云盘上
另外删除了些文件,腾出了些节点之后,可以访问;
但是今天又不能访问了,估计是节点又满了

输入地址无法访问

去线上(之前根本 ssh 都上不去,后来重启了服务器)
然后去线上重启了各种服务(主要是 php-fpm)
可以访问

可以访问,但不能登录

输入账号密码之后,发现页面跳转,但是又调回了登录页,猜测应该是 session 目录无法写入
去打印 phpinfo,找到session.save_path,是在默认的/var/lib/php/session
去检查该目录,发现没有最近登录的 session,查看权限都是正常的
拍错去修改了php.ini里面的 session.save_path,改到其他目录,重启service php-fpm restart,突然发现 类似no space巴拉巴拉的错误,然后df命令发现系统盘没了,这真尴尬
因为之前也遇到过这类情况,估计应该是节点没了(上回删除文件没删多少,留下的节点也只有几千个)
重启之后,查看Phpinfo 发现 save_path 还是之前的没有变,估计是重启需要产生临时文件没有节点,造成不完全重启

解决问题

在挂载的云盘上创建新的目录,设置好权限,用来当做 session 目录
由于框架使用的是 TP,查了下手册,可以通过项目中设置 session 目录
配置文件中加入

'SESSION_OPTIONS' => array('path'=>'新的目录')

之后可以正常登陆访问

补充 (2016-11-22 12:01:15)

一级一级的用 df -i命令查,发现是maildrop目录里面有很多邮件占了100多万个节点;
随便查看了几封邮件,发现是有个做推送的定时任务产生错误,所有不停的发了很多邮件