关于PHP集成环境session_start出现错误的问题

session_start()大家一定很熟悉,它的使用方便我们不用Cookie就可以记录用户的相关状态。今天我在安装一个程序,居然出现了错误,原因是我的集成环境的问题。我用的是APMServ 5.2.6这个集成环境的,运行程序后出现了:

1
2
3
Warning :  session_start ( )  [ function .session -start ] : open_basedir restriction in effect .  File (C :\WINDOWS\TEMP\ ) is not within the allowed path (s ) :  (F :/APMServ5 .2 .6 /www /htdocs /zzw .la /;F :/APMServ5 .2 .6 /tmp /uploadtemp /; ) in F :\APMServ5 .2 .6\www\htdocs\zzw .la\ include\common .php on line  77

Fatal error: session_start() [<a href='function.session-start'>function.session-start</a>]: Failed to initialize storage module: files (path: ) in F:\APMServ5.2.6\www\htdocs\zzw.la\include\common.php on line 77

仔细一看,原来是session_start()出错了。原来环境中配置的目录是在:

1
X :\APMServ5 .2 .6\tmp\sessiondata

提示上却说是的C:\WINDOWS\TEMP这个目录没权限。这是因为我们的WEB用户每权限写入这个目录。那现在怎么办呢,看看PHP.INI这个配置文件,依然没找到设置session的目录,那如何修改这个目录啊,保证能正常读写呢?

上网查查,结果很多结果不能让人满意。都说的似是而非的。但是思路却有了,我们可以指定一个目录,在当前脚本里。这样,一定有访问权限的。
以我的错误为例,错误是common.php文件中的77行出错。看一下77行的代码:

1
2
session_start ( ) ;
$group_info  = cache_read ( 'group_' . ( isset ( $_SESSION [ 'group_id' ] )

那我们可以在这个脚本里加上一行代码,指定我们的SESSION缓存目录。我们可以这么做:

1
ini_set ( 'session.save_path' ,  dirname ( __FILE__ ) . '/../dirname/' ) ;

dirname自己定义,这样就不会出现上述错误了!

转载于:https://www.cnblogs.com/spring4/archive/2012/03/06/2483755.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值