最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
nginx中session跨页面失效问题如何解决
时间:2022-06-30 18:26:28 编辑:袖梨 来源:一聚教程网
昨天在自己的服务器用session实现了一个登陆的功能,但是session跨页面不能使,着实捉急了一会。下面把解决过程记录下,防止下次遇到同样的问题又抓瞎了。
一般session失效的原因有以下几种:
1、浏览器COOKIE禁用。
2、服务器SESSION目录没有写权限。
先来看下服务器SESSION目录没有写权限的情况吧:
前提:这种情况的前提是你的session.save_handler=files,也就是文件存储session。
有的服务器用memcache存储session,可以看下是不是memcache出了问题。
我遇到的就是这种情况,因为之前我用的apache服务器,所以session目录的用户组自然是apache,后来的某年某月我把服务器换成了Nginx,但是我没有更换session目录的用户组,接着就导致了这个问题。
本来是个简单的问题,但是我却傻逼呵呵的把session目录的文件改成了Nginx目录下,但是没有更改session的权限,所以以为自己遇到了一个神奇的问题。希望大家不要犯这么低级的错误。
下面介绍如何解决这个问题:
获取session目录
一般在php.ini里用session.save_path记录session在服务器的存储目录
session.save_path = "/var/lib/php/session"
更改用户组
chown -R nginx.nginx 'session.save_path'
再来看看浏览器COOIKE禁用的问题:
session是依赖于cookie的,当你访问一个网站的时候,这个网站的服务器会为你生成一个唯一的session_id存储在客户端浏览器,当你在站内跳转页面的时候,浏览器会自动向服务器发送你的唯一session_id,服务器根据你的session_id获取session信息。但是当浏览器禁用cookie时,你的服务器无法获取session_id,服务器就无法获取你的session信息,就会导致session失效的问题。
下面介绍下解决办法:
这种情况下可以设置session.use_trans_sid=1,当我们向服务器发送请求时,URL会自动传送session_id的值。
session.use_trans_sid=1
相关文章
- 《绝区零》伊芙琳培养材料汇总 01-24
- 《无限暖暖》1.2春节兑换码一览 01-24
- 《网上国网》查询阶梯档位方法 01-24
- 《蛋仔派对》神游贺岁盲盒获取方法 01-24
- 《炉石传说》星际联动盗贼卡组玩法介绍 01-24
- 皮革珊瑚属于珊瑚中的 01-24