我在我的网站上安装了一个名为Fusion CMS的CMS。
然而,当我安装它/将它移动到文件夹(例如,www.example.com/cms/)时,我会遇到这个烦人的错误,cms中的模块无法正常工作!
A PHP Error was encountered
Severity: Warning
Message: session_start(): open(../tmp'sess_mpnr120ag1dg5mfr1mon7dd6m1, O_RDWR) failed: No such file or directory (2)
Filename: libraries/Session.php
Line Number: 33
但是,如果我安装它/将它移回根文件夹(www.example.com/),它将不会出现任何错误。但我需要把它放在文件夹上!这个CMS使用CI(CodeIgniter),如果它有任何相关性的话,因为我在谷歌上搜索了类似的主题,有些人说它可能是CI.
我该怎么解决这个问题?
编辑:
Wolfgang1983,这是我的发现。
$config['sess_cookie_name'] = 'cisession';
$config['sess_expiration'] = 18000;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = TRUE;
$config['sess_match_useragent'] = FALSE;
$config['sess_time_to_update'] = 18000;
确保您正确设置了配置。尝试更改您的配置,如下所示:
$config['sess_cookie_name'] = 'cisession';
$config['sess_expiration'] = 18000;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = TRUE;
$config['sess_match_useragent'] = FALSE;
$config['sess_time_to_update'] = 18000;
相反,把它改成这样:
$config['sess_cookie_name'] = 'ci_session'; // name of your session
$config['sess_expiration'] = 7200; // the session expiration last ,you can set it to zero for no expiration
$config['sess_expire_on_close'] = FALSE; //
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
我希望这对你有帮助。有关更多信息,请尝试搜索CodeIgniter手册。
在config.php上,请确保已正确设置路径。
我已经在那里的系统目录中设置了我的,因为我使用BASEPATH。你可以在你的应用程序文件夹APPPATH中设置它。
确保您有$config['encryption_key'] = 'some_secure_key';
$config['sess_save_path'] = BASEPATH . 'cache/sessions/';
更新
会话配置
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'cookie_monster';
$config['sess_expiration'] = 1440;
$config['sess_save_path'] = BASEPATH . 'cache/sessions/';
$config['sess_match_ip'] = TRUE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = TRUE;
更新
由于您的会话看起来像codeigniter 2
看起来像codeigniter 2你的使用然后需要配置你的会话,就像codeigniters 2用户指南中所说的那样http://www.codeigniter.com/userguide2/libraries/sessions.html
$config['sess_cookie_name'] = 'cisession';
$config['sess_expiration'] = 18000;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE; // FALSE to TRUE
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = TRUE;
$config['sess_match_useragent'] = FALSE;
$config['sess_time_to_update'] = 18000;
从用户指南将其插入会话表
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(45) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)
);
(代表OP发布)。
我的朋友上了电视,几分钟后,他把tmp文件夹移到了网站的根目录下,解决了这个问题。根据我的朋友"tmp文件夹必须始终是CMS后面的一个文件夹"。