Codeigniter会话未保存在生产服务器上

时间:2018-08-11 17:07:45

标签: php codeigniter session

我已经四处寻找解决方案了。我有一个使用会话库的CodeIgniter项目。在我的本地ubuntu开发服务器上,它可以正常工作,但是在生产服务器上,CodeIgniter会话似乎无法正常工作。因此,我开始进行挖掘并尝试寻找解决方案。

我的codeigniter 3.1.9和php7.2版本

到目前为止,我确实没有成功尝试:

  1. 查看生产服务器上的会话是否在没有CodeIgniter的情况下工作。这似乎可行,所以问题一定与我的CodeIgniter项目有关。

  2. 在CodeIgniter配置文件中,我确实尝试了数据库会话以及文件存储。

  3. I检查会话目录是否可写。我什至看到其中存储的会话文件。

  4. 我将CodeIgniter升级到了最新版本。但是没有帮助。

  5. 我试图自动加载会话并将其加载到控制器中。但没有区别。

我的配置文件没有什么特别的,出于测试目的,我编辑了sess_save_path。但是在开发服务器上的默认配置文件中,它根本没有设置并且可以正常使用,但是在生产服务器上却没有。设置路径不会改变。

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

我只是按需使用标准的CodeIgniter会话函数。

我从会话变量中获得的唯一输出是:

__ci_last_regenerate    1534007152

我希望有人读过这篇文章,并可以指出其他方向,以便我解决问题。

2 个答案:

答案 0 :(得分:1)

尝试

$config['sess_save_path'] = "". FCPATH ."application/sessions/";

$config['sess_save_path'] = NULL;

两者都可以

答案 1 :(得分:0)

今天,在上传后,我的会话停止工作了,今天我又遇到了同样的问题。

在再次查看了为什么我的会话无法正常工作之后,我注意到我忘记将$ config ['cookie_domain']设置为我的在线版本。因此,将url更改为服务器版本后,我的问题就解决了。