php.ini session配置问题导致无法登录网站解决办法
遇到的问题:
从外网拷贝一模一样的php代码、nignx配置、php-fpm.conf、php.ini 到内网,在登录网站时怎么也登录不上,总是提示验证码不正确,验证失败,无法登录
软件版本:【不确定是不是nginx版本不同的原因】
内外网php5.6 外网nginx version: nginx/1.12.1 内网nginx version: openresty/1.17.8.2
解决流程:
1.确定配置文件没问题 2.找服务端查问题,屏蔽一些验证逻辑,最终发现应该是session的问题 3.从服务端得知是session的问题,意识到php.ini有session的配置选项 4.从网络上查找php.ini相关的session配置选项,最终配置如下
[Session] session.save_handler=files session.save_path="/tmp" session.use_cookies=1 session.name=PHPSESSID session.cookie_secure=Off session.auto_start=0 session.cookie_lifetime=1800 session.cookie_path=/ session.cookie_domain= session.serialize_handler=php session.gc_probability=1 session.gc_divisor =1000 session.gc_maxlifetime=1440 session.bug_compat_42=0 session.bug_compat_warn=1 session.referer_check= session.entropy_length=0 session.entropy_file= session.cache_limiter=nocache session.cache_expire=180 session.use_trans_sid=Off session.hash_function=0 session.hash_bits_per_character=5 url_rewriter.tags="a=href,area=href,frame=src,input=src,form=<span style="text-decoration:underline;"><em><span style="color:#ff0000; text-decoration: underline;">fakeentry</span></em></span>"
session属性 session是基于cookie实现的,session-id 存储在cookie中,所以 这个session-id的属性决定了session的属性。 配置项中有对应设置 session.cookie_life = 0; //有效期(默认浏览器关闭) session.cookie_path = '/'; //默认跟路径 session.cookie_domain = ; //有效域名 session.cookie_secure = ; //是否安全传输 HTTPS session.cookie_httponly = ; //是否只http传输 推荐使用 session_set_cookie_params(expire, path, domain, secure, httponly); 来设置这些属性 以上是对于终端session_id属性的设置 接下来看看服务器端配置 session_save_path //session数据存储路径 session_name = PHPSESSID; //保存在cookie中sessionid的键 session_start = 0; //是否自动开启session session_use_trans_sid ;//是否开启自动传递SID 功能 session_use_only_cookie = 1; //是否只依赖cookie传递SID session.gc_maxlifetime = 1440; //session数据及文件生存周期 24分钟后视为垃圾 session.gc_probability = 1; session.gc_dirisor = 100; //以上两个配置组合成了session的垃圾回收机制回收的概率,默认100次请求触发1次垃圾回收。session垃圾回收机制是惰性删除 过期之后不会马上删除而是等待回收概率的触发。 session_save_handler = files; // session默认的保存介质 文件
一些事情一直在干,说不定以后就结果了呢
本文来自博客园,作者:chenjianwen,转载请注明原文链接:https://www.cnblogs.com/chenjw-note/p/15986128.html