【问题标题】:Session: Configured save path 'C:\Windows\Temp' is not writable by the PHP process会话:PHP 进程不可写入配置的保存路径“C:\Windows\Temp”
【发布时间】:2016-09-13 14:11:57
【问题描述】:

遇到未捕获的异常

类型:异常

消息:会话:配置的保存路径 'C:\Windows\Temp' 不是 可由 PHP 进程写入。

文件名: prm\system\libraries\Session\drivers\Session_files_driver.php

行号:125

回溯:

文件:\prm\application\controllers\login.php 行:8 功能: __构造

文件:\prm\index.php 行:279 功能:require_once

无法解决此问题。请建议如何解决此问题

【问题讨论】:

  • 也添加您的代码
  • C:\Windows\Temp,授予可写权限...我的意思是在 Windows 中将其从文件夹属性的只读中取消标记。

标签: codeigniter


【解决方案1】:

编辑 config.php

位置:application/config/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;

之后

$sessDir = session_save_path();
$sessDir = "{$sessDir}/sessionPath";
is_dir($sessDir)?:mkdir($sessDir);

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = $sessDir;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

这对我有用

【讨论】:

  • @Sanjay Khatri 这是我的荣幸
【解决方案2】:

我们正在为数据库 ci_session 表设置 'C:\Windows\Temp' windows 目录路径。

在您的配置文件中更改以下内容。

$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;

$config['sess_driver']= 'database';
$config['sess_cookie_name']= 'mycookie';
$config['sess_expiration']= 0;
$config['sess_save_path']= 'ci_session';
$config['sess_match_ip']= FALSE;
$config['sess_time_to_update']= 300;
$config['sess_regenerate_destroy']= FALSE;
$config['sess_use_database']= TRUE;
$config['sess_expire_on_close']= TRUE;
$config['sess_table_name']= 'ci_session';

【讨论】:

  • 我在使用 Codeigniter 框架的 Windows 服务器中遇到了这个问题。上述解决方案已修复。
  • 这个解决方案对我也有帮助
  • 他不是说要转数据库吗?
  • 我收到三个错误 1) ci_session 不存在 2) 消息:session_write_close():无法以递归方式调用会话保存处理程序 3) 消息:session_write_close():无法使用写入会话数据用户定义的保存处理程序。 (session.save_path: /opt/lampp/temp/)
  • ci_session 表中有哪些列?
【解决方案3】:

在您的应用程序的 config.php 文件中搜索 $config['sess_save_path'] 将其默认值 sys_get_temp_dir() 更改为另一个可公开访问的目录,最好不在 C: 驱动器中。

或者您可以在您的 php.ini 文件中全局设置它并调用 ini_get ('session.save_path'),但首先要确保您已将该选项的默认值更改为您选择的临时目录。

【讨论】:

  • 它是 $config['sess_save_path'] = BASEPATH 。 '缓存/';我改为 sys_get_temp_dir();它正在工作。
猜你喜欢
  • 2020-09-19
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2018-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-25
相关资源
最近更新 更多