当打开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
回溯:
答案 0 :(得分:10)
在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;
应用程序中的自动加载会话> config>自动装载
$autoload['libraries'] = array('session');
注意:确保控制器的所有文件名和类名, 模型,库具有首字母大写示例文件名
Welcome.php
和class Welcome extends CI_Controller {}
。
Codeigniter doc 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
上有一个encryption_key$config['encryption_key'] = 'pXeQY2733rR560MrwJy40OL4WaSGmr5A';
答案 1 :(得分:9)
这对你真的很有帮助,它也节省了我的一天:)
你的config.php中的
$config['sess_save_path'] = sys_get_temp_dir();
答案 2 :(得分:1)
只需在application -> config -> config.php
$config['sess_save_path'] = NULL;
要
$config['sess_save_path'] = FCPATH.'ci_sessions';
它将在您的Root中创建一个目录。 希望你的问题能解决......
由于
答案 3 :(得分:0)
这对我有用
$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;
答案 4 :(得分:0)
你也可以把
output_buffering = On
在根
上的php.ini文件中答案 5 :(得分:0)
将“ NULL”更改为“ / tmp”或服务器的临时文件夹路径
该行现在应显示为:
$config['sess_save_path'] = '/tmp';
答案 6 :(得分:-1)
在autoload.php文件中添加“会话”解决了我的问题
$ autoload ['libraries'] = array('form_validation','session');
答案 7 :(得分:-2)
这项工作对我来说
$config['sess_save_path'] = sys_get_temp_dir();