这是我的php.ini会话设置
session.save_handler = redis
session.save_path = tcp://127.0.0.1:63791
这是我的会话信息()
Session Support enabled
Registered save handlers files user redis rediscluster redis rediscluster
Registered serializer handlers php_serialize php php_binary wddx igbinary
Directive Local Value Master Value
session.auto_start Off Off
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.lazy_write On On
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler redis redis
session.save_path tcp://127.0.0.1:63791 tcp://127.0.0.1:63791
session.serialize_handler php php
session.upload_progress.cleanup On On
session.upload_progress.enabled On On
session.upload_progress.freq 1% 1%
session.upload_progress.min_freq 1 1
session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix upload_progress_ upload_progress_
session.use_cookies On On
session.use_only_cookies On On
session.use_strict_mode Off Off
session.use_trans_sid 0 0
以下是使用session_start
加载页面时出现的错误致命错误:未捕获RedisException:连接已关闭[无活动 file]:0堆栈跟踪:第0行[无活动文件]中抛出#0 {main}
我做错了什么? Stack是 Apache 2.4.18,Php7.01,Redis 2.2.5
答案 0 :(得分:3)
确保php应用程序不会覆盖session.save_path ex:
ini_set("session.save_path","/tmp/");
如果是这样,您在PHP应用程序中覆盖了设置,那么连接将失败。
在单独的php文件中测试您的配置:
<?php
var_dump(ini_get("session.save_handler"));
var_dump(ini_get("session.save_path"));
从控制台或网络浏览器运行它。要验证设置是否正确,还应尽可能晚地在应用程序中执行此代码。
大多数情况下,框架中的ini设置(Zend,Symfony等)在该框架的引导阶段都会被重载。
当var_dump的输出与单独的PHP文件不同时,您可能需要调整框架设置。阅读您正在使用的框架的文档。
你问的东西可能有很多原因和结果。 取决于基础架构,Redis设置,防火墙,PHP应用程序/框架。你应该知道这一点。