我已经四处寻找解决方案了。我有一个使用会话库的CodeIgniter项目。在我的本地ubuntu开发服务器上,它可以正常工作,但是在生产服务器上,CodeIgniter会话似乎无法正常工作。因此,我开始进行挖掘并尝试寻找解决方案。
我的codeigniter 3.1.9和php7.2版本
到目前为止,我确实没有成功尝试:
查看生产服务器上的会话是否在没有CodeIgniter的情况下工作。这似乎可行,所以问题一定与我的CodeIgniter项目有关。
在CodeIgniter配置文件中,我确实尝试了数据库会话以及文件存储。
I检查会话目录是否可写。我什至看到其中存储的会话文件。
我将CodeIgniter升级到了最新版本。但是没有帮助。
我试图自动加载会话并将其加载到控制器中。但没有区别。
我的配置文件没有什么特别的,出于测试目的,我编辑了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
我希望有人读过这篇文章,并可以指出其他方向,以便我解决问题。
答案 0 :(得分:1)
尝试
$config['sess_save_path'] = "". FCPATH ."application/sessions/";
或
$config['sess_save_path'] = NULL;
两者都可以
答案 1 :(得分:0)
今天,在上传后,我的会话停止工作了,今天我又遇到了同样的问题。
在再次查看了为什么我的会话无法正常工作之后,我注意到我忘记将$ config ['cookie_domain']设置为我的在线版本。因此,将url更改为服务器版本后,我的问题就解决了。