【问题标题】:Codeigniter Upgrade 2.2.2 to 3.0 moving sessions to filesystemCodeigniter 升级 2.2.2 到 3.0 将会话移动到文件系统
【发布时间】:2015-05-06 02:35:03
【问题描述】:

我一直遵循记录在here 的升级指南,并已到达有关新会话存储机制的部分。

过去,我的应用程序将会话存储在数据库中,但我选择按照文档中的建议将其移动到文件系统中。

在最初按照升级文档进行操作后,我遇到了问题,因此我使用 config.php 文件的新副本(3.0 提供的库存版本)重新启动并更改了以下变量(您可以假设下面未显示的配置保持其默认值):

$config['base_url'] = 'http://www.domain.com/';
$config['encryption_key'] = 'mykey';

/* default settings omitted */

$config['sess_driver'] = 'files'; 
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'application/session_storage';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

我创建了一个位于/application/session_storage/ 的目录来保存会话并将其文件权限更改为 700,但由于我收到一个数据库错误,表明数据库表不正确,因此某些内容似乎仍然不正确格式正确。

我是否正确地认为通过选择使用文件系统进行会话存储,根本不需要数据库?如果是这样的话,谁能告诉我为什么 CI 还在尝试向其中输入数据?

【问题讨论】:

    标签: php codeigniter session


    【解决方案1】:

    看来,当我按照升级指南的第 2 步说明“替换系统文件夹中的所有文件和目录”时,仅将目录拖放到现有文件夹顶部的 FileZilla 中是不够的。

    在比较系统文件时,我现在似乎有 2.2.2 和 3.0 的文件组合,这似乎导致了冲突。特别是位于system/libraries/Session.php的文件

    我已经删除了文件夹并重新上传它,这已经解决了所有问题。

    【讨论】:

    • 另外值得一提的是 session_save_path 需要是绝对路径,而不是相对路径。例如/home/mydomain.co.uk/subfolder/application/session_storage
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 2019-12-13
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    相关资源
    最近更新 更多