PHP7的session无法使用memcache
背景
本人有个项目之前是php5.6的,session存储方式是memcache,具体实施方案可以搜索引擎找到,这里就不多做介绍,最近的心血来潮,把项目迁移到了7.1.4的新环境上,就开始了踩坑之路。
问题
发现登陆无法使用,查找原因是登录后没获取到session相关的值,由于本人的登陆是通过ajax提交过来,做了断点发现,登陆提交完成后session是能获取到的,登陆后发生的跳转就无法获取到session,这个是很奇怪的问题,本人切回5.6查看发现不会出现这种问题。session的存储方式是memcache,一台memcached服务器。
session服务器:192.168.1.254:11311
php7服务器:192.168.1.100
解决方案
导致这问题的是session.save_handler=’memcache’的原因,不知道是官方的bug还是本人的设置缺少了,改成files就正常了。或者更换扩展,是用memcached扩展https://pecl.php.net/package/memcached
最后回顾
升级PHP7.1.4,导致session无法使用,原因是session.save_handler设置了memcache存储方式,改成files解决问题,具体是官方的BUG还是设置参数缺少的问题,暂时不再深入查询,如果有哪位大神也遇到同样问题,请分享下你的解决方案。