PHP错误,“session_start(): - 失败:没有这样的文件或目录”

时间:2015-06-29 03:20:52

标签: php codeigniter content-management-system

我在我的网站上安装了一个名为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;

3 个答案:

答案 0 :(得分:0)

在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

看起来您使用的codeigiter 2需要配置您的会话,如codeigniter 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`)
);

答案 1 :(得分:0)

确保正确设置配置。 尝试更改您的配置:

$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手册。

答案 2 :(得分:0)

(代表OP发布)

我的朋友上了电视,几分钟后他通过将tmp文件夹移动到网站的根目录来修复它。根据我的朋友&#34; tmp文件夹必须始终是CMS后面的一个文件夹&#34;。