【问题标题】:Using mode formats in session.save_path Codeigniter在 session.save_path Codeigniter 中使用模式格式
【发布时间】:2018-11-06 11:52:21
【问题描述】:

我在使用 Codeigniter 中的会话库时遇到问题。在this page 上明确表示

更具体地说,它不支持在 session.save_path 中使用的 PHP 目录级别和模式格式,并且为了安全起见,它具有大多数硬编码选项。相反,$config['sess_save_path'] 仅支持绝对路径。

现在我想要创建权限为 777 的会话文件。我已将 php.ini 中的 session_save_path 设置为 0;0777;/home/sessions/。这被 Codeigniter 的本地值覆盖为/home/sessions。如何强制 Codeigniter 创建具有 777 权限的会话文件,因为它在配置文件中不支持。

请不要介意会话文件的 777 权限。

【问题讨论】:

    标签: php codeigniter session


    【解决方案1】:

    关于更改默认 ic 0700 的默认目录权限,我完全不建议这样做,因为您必须更改核心系统文件,这是一个非常糟糕的做法,但如果您必须查看 @987654322 @ 并将mkdir($save_path, 0700, TRUE) 更改为mkdir($save_path, 0777, TRUE) 如果你必须并且如果它不存在0777 权限......顺便说一句,我认为使用db 来存储会话更好。

    【讨论】:

    • 不,CI 将会话文件保存在您告诉它的任何地方,可以在系统上的任何地方,包括APPPATH 之外。
    • 我在这里谈到了默认值;我想这种方式更好地保存在可写目录中的 APPPATH 中。
    • There is no default。什么是“更好”完全取决于每个项目和个人喜好。无论如何,您可能需要更新您的答案以更正它。
    【解决方案2】:

    更改一些配置设置,您可以根据设置的位置保存会话

    $config['sess_driver'] = 'files';
    $config['sess_cookie_name'] = 'ci_session';
    $config['sess_expiration'] = 7200;
    $config['sess_save_path'] = BASEPATH . 'sessions/';
    $config['sess_match_ip'] = TRUE;
    $config['sess_time_to_update'] = 300;
    $config['sess_regenerate_destroy'] = TRUE;
    

    在 $config['sess_save_path'] 中提及您要存储会话文件的路径。

    【讨论】:

      猜你喜欢
      • 2021-09-01
      • 2017-11-25
      • 2018-08-22
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-14
      相关资源
      最近更新 更多