前言
作为一篇解决类的文章,这里首先说一下大概的事情经过,方便后来者对照自己的实际情况做出判断
原因就是我重启了服务器…
就是这么简单,然后登录自己的Chevereto图床的时候发现在密码
和用户名
保证正确的情况下
请求被拒绝
您或者没有权限访问此页面
然后Google
了一圈英文圈之后(因为中文圈没有这个的解答)给出下面的解答方式
验证是否为session配置错误
我们首先打开我们自己的Chevereto
的网站,然后按F12
打开调试工具
之后找到console
这个界面之后
输入一下内容
PF.obj.config.auth_token
之后就会出来一串随机的字符串,我们按F5
刷新这个页面之后,再次执行
PF.obj.config.auth_token
如果你注意到这两个随机的字符串是不同的话,那么问题就在于你的服务器没有正确处理session
,所以如果你这里确定了这个,我们接下来就可以解决这个问题了(因为Chevereto新版本已经加入了CSRF
的防范措施)
解决
这里是我们的php
没有做好session
的处理,也就是我们的php
配置有点问题
在这之前,我们先确定你的Chevereto
的安装目录下已经用了正确的组和用户权限,如你的中间件是apache
的话,组和用户设置应该是是apache:apache
,如果是nginx
的话,应该为nginx:nginx
注,所有文件都应该为这个组权限
如果你不放心或者不好检查的话可以这样做
apache
chown -R apache:apache /var/www/html
这里假设你的网站安装目录在/var/www/html
,如不是,请改成对应的目录
nginx
chown -R nginx:nginx /var/www/html
然后我们修改/etc/php-fpm.d
下的www.conf
,这里我们的中间件假设为nginx
,如果是apache
的话,这一步可以打开确认一下
我们打开这个文件
;user = apache
user = nginx
;group = apache
group = nginx
找到这个地方,这里配置文件是用;
来做注释的,这里大家清除这一点,因为我们用的nginx
,所以这里将user
和group
都修改为nginx
,如果你是apache
的话,确认这里的组和用户为apache
,然后保存退出
之后重启php-fpm
和nginx
systemctl restart php-fpm
systemctl restart nginx
之后我们来到这里
cd /var/lib/php
这里有个文件夹叫session
确保这个文件夹的用户和组为root:nginx
,对应的apache
以此类推
注:默认这个文件的权限是为root:apache
如果不是的话这样修改
chown :nginx session
然后我们进入session
目录
确保这个目录下的session
文件都是和你的中间件对应的
chown nginx:nginx *
注:这些文件默认都是apache:apache
然后做完这些,你的服务应该能正常登录了
本文完