用户
 找回密码
 入住 CI 中国社区
搜索
查看: 11133|回复: 20
收起左侧

[版本 3.x] 又是ci session 问题

[复制链接]
发表于 2015-12-19 15:57:45 | 显示全部楼层 |阅读模式
我们每个月做的网站都是很多很多的,用的是虚拟主机的
1    不可能保存session文件在目录下,管理起来太麻烦了,时间久了空间又满了,也不可能写一个过程每次都清理一下文件,太影响性能了
2    保存到数据库也不行,数据库空间也有限,也会影响性能。用原生的还好,不过没那么方便,

有些虚拟主机 session.save_path =no value  CI3 就会出错的


 楼主| 发表于 2015-12-21 10:18:36 | 显示全部楼层
本帖最后由 m1sheng 于 2015-12-21 10:24 编辑

有些虚拟主机 session.save_path =no value而且  $config['sess_save_path'] = null;   (不想保存session到目录下)
就会报错了
大概是session 没目录去写吧,还是 原生的好用,依赖性不强
感觉CI对空间要求也挺高的,有些虚拟主机是不开chmod()这个函数的

有万网虚拟主机的可以试一下,一开session就报错的
A PHP Error was encounteredSeverity: Warning
Message: mkdir(): No such file or directory
Filename: drivers/Session_files_driver.php
Line Number: 117
Backtrace:
File: D:\freehost\xxxxxx\web\index.php
Line: 292
Function: require_once

An uncaught Exception was encounteredType: Exception
Message: Session: Configured save path '' is not a directory, doesn't exist or cannot be created.
Filename: D:\freehost\xxxxxx\web\system\libraries\Session\drivers\Session_files_driver.php
Line Number: 119
Backtrace:
File: D:\freehost\201528888753ab\web\index.php
Line: 292
Function: require_once



 楼主| 发表于 2015-12-22 11:17:29 | 显示全部楼层
本帖最后由 m1sheng 于 2015-12-22 11:21 编辑
Hex 发表于 2015-12-22 10:25
CI3 就是原生的呀,原生的也是存成文件的呀。
Session 无非就是这么几个存储的地方,文件系统,数据库,m ...

用$_SESSION 的话 它会保存到  session.save_path 目录下,如果 save_path 为 no value 就会默认系统临时目录(/tmp)之类的,两者都不在我的虚拟主机目录下,不会增加主机的空间大小,也不用去管理,啥时候清理文件那就是服务器管理员的事了,而且经常要用ftp备份网站,文件太多就慢了,经常有网站空间满了或者数据库满了,做好的网站不能再增加售后去管理了,因为网站不是一两个,是成千上万个
 楼主| 发表于 2015-12-21 14:14:54 | 显示全部楼层
Hex 发表于 2015-12-21 12:22
那可以存到数据库呀,MySQL 总有吧。
另外 CI3 的 Session 就是原生的。
关于 CI 的要求高,这个应该是相 ...

mysql 也不行,虚拟主机提供的数据库本身就不大,自身数据都占了一大半了,还加上session的
如果网站流量多突然多起来了,数据库就爆表了
而且虚拟主机承载着上百上千这样的网站,每次都读写数据库,服务器承受不起
原生的$_SESSION就没这方面的问题,还不用配置
发表于 2015-12-21 10:29:47 | 显示全部楼层
session 不想保存到本地,可以配置到保存到 memcached 上啊,CI3 的 Session 默认支持这个 driver 的。
 楼主| 发表于 2015-12-21 11:15:23 | 显示全部楼层
Hex 发表于 2015-12-21 10:29
session 不想保存到本地,可以配置到保存到 memcached 上啊,CI3 的 Session 默认支持这个 driver 的。 ...

用的是虚拟主机,哪有memcached,CI不是说《广泛兼容各种主机环境》,感觉CI对空间要求也挺高的,
发表于 2015-12-21 12:22:12 | 显示全部楼层
m1sheng 发表于 2015-12-21 11:15
用的是虚拟主机,哪有memcached,CI不是说《广泛兼容各种主机环境》,感觉CI对空间要求也挺高的, ...

那可以存到数据库呀,MySQL 总有吧。
另外 CI3 的 Session 就是原生的。
关于 CI 的要求高,这个应该是相对的,有的框架还需要编译扩展呢,这个还是要看你的需求。
发表于 2015-12-21 21:31:30 | 显示全部楼层
m1sheng 发表于 2015-12-21 11:15
用的是虚拟主机,哪有memcached,CI不是说《广泛兼容各种主机环境》,感觉CI对空间要求也挺高的, ...

直接就不存在兼容的问题,memcache 你没有,redis估计你也没有,mysql你也不想用,用文件的啊,只要一句绝对路径就行了,这个就是原生的了!
你还嫌麻烦,别用session啊!
用了session这个功能必须要存id的数据,还能怎么着!!
发表于 2015-12-21 21:31:42 | 显示全部楼层
m1sheng 发表于 2015-12-21 11:15
用的是虚拟主机,哪有memcached,CI不是说《广泛兼容各种主机环境》,感觉CI对空间要求也挺高的, ...

直接就不存在兼容的问题,memcache 你没有,redis估计你也没有,mysql你也不想用,用文件的啊,只要一句绝对路径就行了,这个就是原生的了!
你还嫌麻烦,别用session啊!
用了session这个功能必须要存id的数据,还能怎么着!!
发表于 2015-12-21 21:33:13 | 显示全部楼层
m1sheng 发表于 2015-12-21 14:14
mysql 也不行,虚拟主机提供的数据库本身就不大,自身数据都占了一大半了,还加上session的
如果网站流量 ...

虚拟主机承载这上百上千的网站!
你没搞错吧!
首先把网站 与访问量搞清楚在来搞CI!
不然蛋疼!

本版积分规则