1

在 localhost 上一切正常,但在部署时,当我尝试调用 Session::instance() 时出现错误“读取会话数据时出错”。我的错误在哪里?也许是服务器问题或 Kohana 错误?

4

4 回答 4

2

就我而言,它是一个服务器问题。我昨天遇到了类似的问题,这就是我解决它的方法。

  • 首先,将错误处理设置为 false(在 bootstrap.php 上,设置错误 => false)以便更好地诊断
  • 再次刷新您的浏览器。我的在 C:\xampp\tmp 上写入错误。原来我的“tmp”文件夹丢失了(我不知道为什么,可能是由于鼠标习惯而误删除)
  • 创建 tmp 文件夹,完成:)

顺便说一句,我使用 'native' 作为 kohana-session 处理程序。对于 xampp,您可以在 xampp/apache/conf/extra/httpd-xampp.conf 上查看“SetEnv TMP {your tmp dir here}”。其他 LAMP 堆栈可能会有所不同。

于 2012-06-28T00:32:16.253 回答
1

你可以发布你的 session.php 吗?如果您使用加密选项,您是否设置了加密密钥?您使用什么驱动程序来存储会话(文件、cookie、数据库)?

于 2012-05-07T18:21:03.413 回答
0

如果您将数据库(或 ORM)用于会话,那么“读取会话数据时出错”通常意味着 Kohana 无法连接到数据库。检查您是否可以连接到数据库。

如果您将文件用于会话,请检查 PHP 写入会话的文件夹是否可写。

于 2012-05-06T23:18:14.650 回答
0

我的问题出在会话“本机”kohana 3.3 中。我收到错误读取会话数据和损坏的数据或其他东西。$_SESSION当我检查数组中的任何数据时,例如echo $_SESSION['x']有我需要的值,那么为什么这告诉我错误读取?

在线出现错误:$session = Session::instance(); 我尝试了许多解决方案(例如php.ini)但没有成功。我的第一个解决方案是:

try{
$session = Session::instance();
}
catch (Exception $e){//do sth. eg. restrt sesion etc..}

但这是一个糟糕的解决方案,因为几个月后问题又回到了另一台服务器上。我收到消息 Database_Exception [ 1030 ]: Got error 28 from storage engine... 或 Database_Exception [ 126 ]: Incorrect key file for table '/ramdisk/mysql/tmp/#sql_138c_2.MYI'; 尝试修复它 [ SHOW FULL COLUMNS FROM tabe]

因此,当您的服务器上没有空间用于 mysl 存储文件时,您会收到错误“读取会话数据时出错”解决方案是在服务器上腾出一些空间。就我而言,我只是删除了一些非常旧的文件和一些日志文件。

于 2014-01-04T20:08:54.580 回答