牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2012-03-06 投稿人: 浏览次数:2136

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

1
2
3
Warning: session_start() [function.session-start]: open_basedir restriction in effect. File(C:WINDOWSTEMP) 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.6wwwhtdocszzw.laincludecommon.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.6wwwhtdocszzw.laincludecommon.php on line 77

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

1 X:APMServ5.2.6 mpsessiondata

提示上却说是的C:WINDOWSTEMP这个目录没权限。这是因为我们的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自己定义,这样就不会出现上述错误了!

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。