Php 仅为一页设置会话\u设置\u保存\u处理程序

Php 仅为一页设置会话\u设置\u保存\u处理程序,php,session,handler,Php,Session,Handler,在我的php.ini中,我有以下设置: session.save_handler = redis session.save_path = "tcp://localhost:6379?weight=1" 但我想保留该设置,因为它与我使用的系统一起工作,但唯一的问题是,当我尝试创建会话时,它会给我错误。。离题了 问题是,我试图将save处理程序设置为仅用于我的login.php的文件,然后再使用redis 我的文件中有以下代码,但不会从redis更改为文件: session_set_save_ha

在我的php.ini中,我有以下设置:

session.save_handler = redis
session.save_path = "tcp://localhost:6379?weight=1"
但我想保留该设置,因为它与我使用的系统一起工作,但唯一的问题是,当我尝试创建会话时,它会给我错误。。离题了

问题是,我试图将save处理程序设置为仅用于我的login.php的文件,然后再使用redis

我的文件中有以下代码,但不会从redis更改为文件:

session_set_save_handler('files');
session_save_path("/tmp/");
session_start(); // Starting Session
指令的作用与指令的作用不完全相同。前者期望a作为其第一个参数,而后者期望标量值作为PHP中注册的处理程序之一

您想说的是
ini\u set('session.save\u handler','files')


redis
会话处理程序设置
会话.save_path
时,应避免使用无法通过DNS解析程序直接解析的主机名。这几乎就是你在
/etc/hosts
中放入的任何东西,比如
localhost
。相反,请尝试使用redis直接监听的IP地址,例如
127.0.0.1
。原因是PHP在解析主机名时不会尝试直接查看
/etc/hosts

是否有任何错误?
警告:未知:无法写入会话数据(redis)。请验证session.save_path的当前设置是否正确(/tmp/)在第0行的未知中
更新了结果:当我将整个save_处理程序设置为文件时,它可以工作,但我需要它作为我的站点结构的redis。当我尝试在登录系统上设置会话时,除了这个会话问题之外,Redis对我来说非常适合。所以我再次尝试使用文件只是为了登录,然后求助于redis?你不应该使用
tcp://localhost
在那里。PHP可能无法正确解析
localhost
。而是使用
tcp://127.0.0.1
或redis正在监听的任何IP地址。显然,您希望包括端口和redis服务器所需的任何其他身份验证/权重参数,就像原始字符串中一样。您正在将
localhost
简化为
127.0.0.1
。其他一切都一样。谢谢你的帮助!谢谢。