我正在为正在使用的项目担任技术总监 PHP,Zend和Redis运行游戏。
我正在做一个发布服务,当我尝试部署我从开发人员那里获得的构建时遇到了问题。当我尝试启动服务器时出现此错误。
致命错误:[无活动文件]中未捕获的异常'RedisException',消息'Connection closed':0堆栈跟踪:#0 {main}在第0行的[no active file]中抛出
我认为首先是Redis连接。但我尝试telnet它,并且还通过简单的套接字编程脚本硬编码PHP Predis来设置/获取Redis数据。 它正在发挥作用。
所以我试着注释掉每一行代码,然后我到达Zend框架的那一行:
<?php
...
try {
Zend_Session::start();
Game_Db_Db::init(); // <-- This is also failed if I commented out above Zend_Session::start();
} catch (Exception $e) {
echo $e->getMessage() . '<br>';
echo "Error";
}
...
?>
我试着在另一个问题上查找并发现了这一点。
上述问题表明问题与写入权限有关。但是我的情况有所不同,因为我使用Redis for session.save_path =“tcp://xx.xx.xxx.xxx:xxxx”而不是本地路径。
正如我之前提到的,我成功测试了Redis set / get键值。所以我认为问题可能会有所不同。
开发人员正试图解决这个问题,但是这个问题已经花了很长时间。
如果你能指出我应该在哪里看看,那就绰绰有余了。
提前感谢。
答案 0 :(得分:0)
我有同样的问题,在我的情况下,我首先检查ini设置是否在单独的文件中正确(没有Zend框架)。
<?php
var_dump(ini_get("session.save_handler"));
var_dump(ini_get("session.save_path"));
如果php.ini正常工作,请检查Zend Config中是否有一些设置,请参阅Zend Project中的http://framework.zend.com/manual/2.0/en/modules/zend.session.global-session-management.html或grep for“save_path”。