在session.save_path Codeigniter中使用模式格式

时间:2018-11-06 11:52:21

标签: php codeigniter session

我在使用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权限。

2 个答案:

答案 0 :(得分:0)

关于更改默认ic 0700的默认目录权限,我完全不建议这样做,因为您必须更改核心系统文件,这是一个非常糟糕的做法,但是如果您必须看看{{ 1}},然后将Session_files_driver.php更改为mkdir($save_path, 0700, TRUE)(如果您必须且如果尚未获得0777许可,则将其更改为……),我认为使用db存储会话更好。

答案 1 :(得分:0)

更改一些配置设置,即可按设置的位置保存会话

$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']中提到您要存储会话文件的路径。