草札

您现在的位置是:首页 > 程序技术 > 技术分享 > 正文

技术分享

thinkphp6.0在wdCP无法获取session的解决方案

作者:草札2020-07-23 16:03:41技术分享27
服务器一直用的是wdCP面板,最近用thinkphp6.0做项目,发现可以正常写入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的解决方案


分享到:

读者评论