laravel框架中的session问题
这两天一直在鼓捣服务器,配置环境,在搭建laravel的过程之中,发现了laravel中的session的一些问题,这里总结一下:
(1):我在服务器上搭建了多个sever,为了测试学习,分别使用不同的php框架,laravel,tp,原生,一开始发现session跨域的问题,就修改了php.ini中的session_cookie_domain参数,
设置为session_cookie_domain= .xxxx.top (注:php.ini中的cookie.path默认为 /,所以不需要进行修改 )
在设置成功以后,重启php-fpm,发现除了laravel框架不能读取出其他server中设置的session以外,其他server可以互相查看session(也都读取不了laravel中设置的session)
后来查了一下,发现是这样的:laravel框架对session做了处理,没有使用php中的session处理方式,而是使用了自己独特的方式(session的存储位置也发生了变化),所以才有上述的问题
如果想在laravel中查看其他server添加的session,可以使用php原生的session_start(),$_SESSION等函数进行处理。其他server如果想要查看laravel中使用框架自定义的方式设置的 session,就比较的麻烦,网上有人说可以安装插件来实现,这里觉得这种方式并不好,就没有做实验
(2):如何解决多个项目的session跨域问题:
1):在没有使用laravel相关框架的时候,只需要配置php.ini中相关的参数就可以。在使用多种框架的使用,特别是使用laravel框架的使用,可以统一使用php原生的session处理方式(这种方式的确可以解决上述问题,但是相当于浪费了框架的封装,并不推荐)
2):我认为最好的解决办法是,使用数据库(mysql,nosql)来存储session,目前主流的php框架都是支持session存储在数据库中的相关操作的,这样在操作上也能加快访问的速度