我从 Codeigniter 2升级到3 ,现在我的 CAS库出现了此错误:
A PHP Error was encountered
Severity: Error
Message: session_start() [function.session-start]: Failed to initialize storage module: user (path: C:\Windows\Temp)
Filename: CAS/Client.php
Line Number: 3588
Backtrace:
它与会话有关,我猜CI3.0处理它与CI2.0不同。
我在 config.php
中有以下内容$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE
任何帮助都将受到高度赞赏。感谢。
新
我做了一个干净的CI3.0.4安装,似乎问题是CAS身份验证库: https://github.com/eliasdorneles/code-igniter-cas-library
它适用于CI 2.x,但不适用于CI3.0。如果我只是不加载CAS模块,一切都可以正常运行(我没有设置会话等问题)。但是,一旦我加载CAS, CAS / Client.php 上的行session_start()
就会出现问题。有什么想法吗?
答案 0 :(得分:7)
您尚未配置sess_save_path确保文件夹chmod 700
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = FCPATH . 'application/cache/';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
自动加载会话
$autoload['libraries'] = array('session');
答案 1 :(得分:1)
您可以尝试以下代码,它适用于我
// before session_start();
ini_set('session.save_handler', 'files');
// make sure it is writeable
ini_set('session.save_path', 'c:\temp');
session_start();
答案 2 :(得分:0)
我有同样的问题。 我通过编辑库/ Cas.php(第55行)并添加false参数来修复它,以防止phpCAS启动会话本身 phpCAS :: client(CAS_VERSION_2_0,$ cas_url [' host'],$ cas_url [' port'],$ cas_url ['路径'], false 强>);
答案 3 :(得分:0)
我已经解决了这个问题。打开phpCAS文件:CAS / Client.php。 转到约3580行(在"私人函数_renameSession")。
修改
session_start();
到
if (! isset($_SESSION)) {
session_start();
}
请原谅我的英语。
答案 4 :(得分:0)
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = '/tmp';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
将sess_save_path
服务器节路径更改为/tmp
:
$config['sess_save_path'] = '/tmp';