CodeIgniter 3中的错误会话文件驱动程序

时间:2015-04-28 06:35:18

标签: php codeigniter

我是CodeInger的新开发人员,过去几个月我用PHP框架开发了我的项目,名为CodeIgniter。所以我的问题是,当我尝试将我的项目从版本2升级到3时,我发现了一个与会话有关的错误。

注意:我正在使用Google Cloud Hosting。

这是一条消息:

A PHP Error was encountered

Severity: Warning

Message: mkdir(): The local filesystem is readonly, mkdir failed

Filename: drivers/Session_files_driver.php

Line Number: 117

Backtrace:

File: /base/data/home/apps/s~chatomuk-staging/13.383916973498394810/index.php
Line: 292
Function: require_once

我已经尝试了3个多小时来解决它,但没有答案。

谁能告诉我这是什么问题?

url:http://chatomuk-staging.appspot.com/

2 个答案:

答案 0 :(得分:2)

您需要在config.php文件中设置这两个参数

$config['sess_driver'] = 'database'; 
$config['sess_save_path'] = 'ci_sessions'; 
$config['sess_use_database'] = TRUE;

在此之前,您检查数据库中是否存在会话表 如果不存在则创建

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)

虽然这可能解决了您的问题,但这并不是您在错误消息中遇到的问题。

在您的配置中,您似乎将会话驱动程序设置为基于文件的会话驱动程序。这意味着您需要为会话设置路径。您还需要至少确保该目录可由具有运行 php 脚本权限的用户写入,通常 www-data 在 linux 机器上。通常是这样的。

sudo chmod g+w _ci_sessions

如果所有权设置不正确,这样的事情可能是安全的。

sudo chown root:www-data _ci_sessions

您还应该像这样包含驱动程序的路径。

$config['sess_save_path'] = APPPATH . '_ci_sessions';

然后确保该目录具有与此类似的路径并已创建。您的所有会话都将存储在这里。

/var/www/html/application/_ci_sessions

如果您将驱动程序设置为这样的文件,我将添加您只需要执行此操作。

$config['sess_driver'] = 'files';

还要确保使用 APPPATH 环境变量,因为需要绝对路径。