thinkphp6.0在wdCP无法获取session的解决方案
服务器一直用的是wdCP面板,最近用thinkphp6.0做项目,发现可以正常写入session值,但读取的时候却是空的。后面搞了半天,才研究出问题的原因,下面贴出解决方案。
出现这个问题的原因是:
1、未设置cookie有效域名。
解决方法:打开\app\(应用)\config\cookie.php,把配置里的domain设置为您当前项目的真实的顶级域名,如果有多个应用,均需要设置。如果没有设置,就获取不到session值,验证码、登陆等等可能不正常。
2、wdCPv3.3.11还是使用低版本的nginx1.8.1,而nginx官方最新版都已经nginx-1.19.1了。
解决方案是:升级nginx到新版即可。
wdcp3升级nginx版本的正确方法:
1、下载sh文件
wget http://down.wdlinux.cn/in/nginx_up.sh
2、运行升级文件
sh nginx_up.sh 版本号
注意:"sh nginx_up.sh 版本号" 如 sh nginx_up.sh 1.15.7
若不带版本号默认升级到1.2.9版本,如想升级到其它的版本, 可在脚本后加上版本号,如sh nginx_up.sh 1.15.7 本人就升级到了1.15.7
升级以后的问题:
nginx升级到1.15.7以上版本以后,如果您的站点启用了SSL(https),那么重启nginx时可能会报错: the "ssl" directive is deprecated, use the "listen ... ssl"
解决方法:打开nginx配置文件,
1、删除: ssl on 这一行
2、把开头 listen 443; 修改成: listen 443 ssl;
3、重启nginx。
如果问题仍未解决,可以尝试:thinkphp6.0无法获取session的解决方案