【问题标题】:Codeigniter Sessions Do Not Work On Live ServerCodeigniter 会话在实时服务器上不起作用
【发布时间】:2016-03-20 18:59:09
【问题描述】:

当打开 codeigniter 项目 localhost 时,它们可以正常工作并在服务器中打开,然后出现无效路径错误

遇到了 PHP 错误

严重性:警告

消息:mkdir():路径无效

文件名:drivers/Session_files_driver.php

行号:117

回溯:

文件:/Library/Server/Web/Data/Sites/garden_worx/index.php 行:292 函数:require_once

错误 2

遇到未捕获的异常

类型:异常

消息:会话:配置的保存路径 '' 不是目录,不是 存在或无法创建。

文件名: /Library/Server/Web/Data/Sites/garden_worx/system/libraries/Session/drivers/Session_files_driver.php

行号:119

回溯:

文件:/Library/Server/Web/Data/Sites/garden_worx/index.php 行:292 函数:require_once

错误 3

遇到了 PHP 错误

严重性:警告

消息:fopen(6d898f163e36616cef220426dad109225a66f74a):未能 打开流:权限被拒绝

文件名:drivers/Session_files_driver.php

行号:156

回溯:

【问题讨论】:

标签: codeigniter


【解决方案1】:

将“NULL”更改为“/tmp”或您的服务器临时文件夹路径

该行现在应该是:

$config['sess_save_path'] = '/tmp';

【讨论】:

    【解决方案2】:

    在 autoload.php 文件中添加“会话”解决了我的问题

    $autoload['libraries'] = array('form_validation','session');

    【讨论】:

      【解决方案3】:

      你也可以放

      output_buffering = On
      

      在根目录下的 php.ini 文件中

      【讨论】:

        【解决方案4】:

        这对我有用

        $config['sess_save_path'] = sys_get_temp_dir();

        【讨论】:

          【解决方案5】:

          只需在您的 application -> config -> config.php 中更改此设置

          $config['sess_save_path'] = NULL;
          

          $config['sess_save_path'] = FCPATH.'ci_sessions';
          

          它将在您的根目录中创建一个目录。 希望您的问题能得到解决...

          谢谢

          【讨论】:

            【解决方案6】:

            这对我有用

            $config['sess_driver'] = 'files';
            $config['sess_cookie_name'] = 'ci_session';
            $config['sess_expiration'] = 7200;
            $config['sess_save_path'] = sys_get_temp_dir();
            $config['sess_match_ip'] = TRUE;
            $config['sess_time_to_update'] = 300;
            $config['sess_regenerate_destroy'] = FALSE;
            

            【讨论】:

              【解决方案7】:

              这对你很有帮助,它也拯救了我的一天:)

              在你的 config.php 中

              $config['sess_save_path'] = sys_get_temp_dir();
              

              类似的问题 session error in codeigniter?

              【讨论】:

              • 正是我需要的,谢谢。我的基本文件夹有一些服务器限制。你给的方式肯定是首选方式。
              【解决方案8】:

              在 codeigniter 3 版本中,您可以使用文件或数据库,如果文件,请确保您已创建文件夹,您希望设置会话路径和 chmod 700

              我使用缓存文件夹来存储文件会话

              $config['sess_driver'] = 'files';
              $config['sess_cookie_name'] = 'ci_session';
              $config['sess_expiration'] = 1440;
              $config['sess_save_path'] = FCPATH . 'application/cache/sessions/';
              $config['sess_match_ip'] = TRUE;
              $config['sess_time_to_update'] = 300;
              $config['sess_regenerate_destroy'] = TRUE;
              

              在应用程序中自动加载会话>配置>自动加载

              $autoload['libraries'] = array('session');
              

              注意:确保控制器的所有文件名类名, 模型,库的首字母大写示例文件名Welcome.phpclass Welcome extends CI_Controller {}

              Codeigniter 文档的 2 和 3 http://www.codeigniter.com/docs

              Codeigniter 3 会话 http://www.codeigniter.com/user_guide/libraries/sessions.html

              Codeigniter 2 会话:http://www.codeigniter.com/userguide2/libraries/sessions.html

              您可能还需要在 config.php 上有一个加密密钥

              $config['encryption_key'] = 'pXeQY2733rR560MrwJy40OL4WaSGmr5A';
              

              http://randomkeygen.com/

              【讨论】:

              • 我试了一下还是不行,请给我另一个主意
              • 我们在哪里设置 chmod 777
              • 您的 codeigniter 版本是什么,并使用您的会话配置更新您的问题。
              • 我不确定您是否使用实时服务器,如果您是,您可以右键单击 ftp 上的文件夹,然后转到权限。
              • 这也可能是您的文件名问题,请阅读注意:区域。
              猜你喜欢
              • 1970-01-01
              • 2017-07-03
              • 2017-06-07
              • 1970-01-01
              • 2016-08-20
              • 1970-01-01
              • 1970-01-01
              • 2021-03-17
              • 2015-02-17
              相关资源
              最近更新 更多