Codeigniter无法加载库

mdi*_*n18 21 php session codeigniter

最初,我认为由于在Codeigniter中使用Modular Extensions,我在加载库时遇到了问题.

但是我发现即使使用干净的codeigniter安装,我也无法加载诸如Session library甚至迁移库之类的库.

我总是得到类似的错误消息,通常与加载文件有关.

这是我在使用会话库时的错误消息.

注意:如果我不使用库,一切正常.

错误:

$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;
Run Code Online (Sandbox Code Playgroud)

我觉得这是某种形式的权限问题,但无论我使用AMPPS,MAMP(Windows)还是XAMP,我总是遇到这个问题.

有没有人有任何想法

操作系统:Windows 8.1

网络服务器:AMPPS/MAMP(Windows)/ XAMP - 都有问题.

笨:V3.0.0

配置:

CREATE TABLE IF NOT EXISTS `ci_sessions` (

        `id` varchar(40) NOT NULL,
        `ip_address` varchar(45) NOT NULL,
        `timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
        `data` blob NOT NULL,
        PRIMARY KEY (id),
        KEY `ci_sessions_timestamp` (`timestamp`)
);
Run Code Online (Sandbox Code Playgroud)

编辑:

解决.

现在使用CI3文档非常重要,在使用数据库方法进行会话时,请确保使用更新的SQL来创建表.

$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;
Run Code Online (Sandbox Code Playgroud)

在这里找到.我希望这可以帮助任何有类似问题的人.

此外,对于初始问题,如果您使用的是files驱动程序,请确保将其设置$config['sess_save_path']为类似于'ci_sessions'或希望存储的位置.有关更多信息,请参阅@Tpojka答案.

小智 84

工作代码;

$config['sess_save_path'] = sys_get_temp_dir();
Run Code Online (Sandbox Code Playgroud)

这允许执行脚本.


Tpo*_*jka 14

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

$config['sess_save_path'] = NULL;
Run Code Online (Sandbox Code Playgroud)

尝试设置这个.

  • @ mdixon18,仅供参考,嵌入在CodeIgniter`config.php`文件中的"会话变量"注释部分会详细介绍每个选项.你 '而有`sess_save_pat'`到`NULL`' sess_driver'`设置为''files'`**不能**设定`.引用:*"对于'文件'驱动程序,**它是可写目录的路径**.警告:只支持绝对路径!"* (2认同)

小智 7

此代码在我的MACOS上适用于会话错误:

您需要将此代码添加到config.php文件中

您需要替换NULL为sys_get_temp_dir()

$config['sess_save_path'] = sys_get_temp_dir();
Run Code Online (Sandbox Code Playgroud)

我的错误是:

警告:未捕获的异常:会话:配置的保存路径“”不是目录,不存在或无法创建。在/Library/WebServer/Documents/ci/fuse/system/libraries/Session/drivers/Session_files_driver.php:138堆栈跟踪中:#0 [内部功能]:CI_Session_files_driver-> open('','ci_session')#1 / Library / WebServer / Documents / ci / fuse / system / libraries / Session / Session.php(143):session_start()#2 /Library/WebServer/Documents/ci/fuse/system/core/Loader.php(1281): CI_Session-> __ construct()#3 /Library/WebServer/Documents/ci/fuse/system/core/Loader.php(1174):CI_Loader-> _ ci_init_library('Session','CI_',NULL,'session')# 4 /库/ WebServer /文档/ci/fuse/system/core/Loader.php(1037):CI_Loader-> _ ci_load_stock_library('Session','Session /',NULL,

致命错误:session_start():无法初始化存储模块:第143行的/Library/WebServer/Documents/ci/fuse/system/libraries/Session/Session.php中的用户(路径:)


Bri*_*dia 6

Step1 : open config.php and create a session folder with 0755 permission.
Step2 : update below code variable 
$config['sess_save_path'] =  __DIR__.'/session'; 
Run Code Online (Sandbox Code Playgroud)


zbr*_*rka 5

我今天也遇到了这个问题.

谢谢Sparky和Trojka,将我的配置设置为使用数据库而不是文件使我的CI应用程序在我的本地服务器和现场服务器上都能正常运行.

方法如下:

$config['sess_driver'] = 'database';       // changed from file
$config['sess_save_path'] = 'ci_sessions'; // table name
Run Code Online (Sandbox Code Playgroud)

在Trojka发布的链接中有用于创建表的MySQL.