【问题标题】:PHP Error, "session_start(): - failed: No such file or directory"PHP 错误,“session_start(): - 失败:没有这样的文件或目录”
【发布时间】:2015-06-29 03:20:51
【问题描述】:

我在我的网站上安装了一个名为 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) 如果它有任何相关性,因为我在 google 上搜索了类似的主题,有人说它可能是 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;

【问题讨论】:

标签: php codeigniter content-management-system


【解决方案1】:

确保您正确设置了配置。 尝试像这样更改您的配置:

$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】:

    在您的 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,然后需要像 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`)
    );
    

    【讨论】:

    • 嗨 wolfgang1983,我只能在我的应用程序文件夹的 config.php 中找到它。检查编辑。
    • Codeigniter 2 会话用户指南codeigniter.com/userguide2/libraries/sessions.html
    • 我照你说的做了。我将$config['sess_use_database'] 设置为true,并且由于该表已经存在,因此我将其删除并上传了您提供给我的新表。可悲的是,错误仍然存​​在......我已经为你粘贴了 session.php 和 config.php 。linklink 。谢谢。
    • 您是否使用 s $this->session->set_userdata 等方式设置 codeigniter 会话。
    • 不知道,怎么查?
    【解决方案3】:

    (代表 OP 发布)

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

    【讨论】:

      猜你喜欢
      • 2011-03-16
      • 2016-03-05
      • 2018-08-31
      • 1970-01-01
      • 2013-08-01
      • 2016-07-05
      • 2013-02-04
      • 2020-04-01
      • 1970-01-01
      相关资源
      最近更新 更多