XAMPP环境点击登出跳转登录页出现session_start权限报错如何解决?
问题排查与解决步骤
1 修复代码逻辑错误
你的登出逻辑存在重复启动session的不规范写法:
- init.php中已经执行了
session_start(),你在登出页引入init.php之后又调用了一次session_start(),无需重复调用,先修正这部分内容。
修正后的登出页代码:
<?php include "init.php" ; //include init session_unset(); session_destroy(); header('Location: /'); exit(); ?>
2 解决权限问题(报错直接原因)
报错提示Permission denied (13)已经明确说明,XAMPP的运行账号没有C:\xampp8\tmp目录的读写权限,按以下步骤操作即可:
- 打开Windows资源管理器,找到
C:\xampp8\tmp目录,右键点击选择「属性」,切换到「安全」标签页 - 先确认XAMPP Apache服务的运行账号:右键Windows开始菜单,选择「计算机管理」-「服务和应用程序」-「服务」,找到Apache相关服务,查看「登录为」一列的账号,通常是
SYSTEM、当前登录的Windows账号或者独立的apache服务账号 - 给对应账号添加
C:\xampp8\tmp目录的「读取、写入、修改」权限,保存设置后重启Apache服务即可恢复正常。
可选优化方案
如果调整权限后仍偶发同类报错,可以修改PHP的session存储路径到项目私有目录,避免和其他XAMPP项目的session存储产生冲突:
在init.php的session_start()之前添加如下代码:
// 提前在项目根目录创建sessions文件夹,给足读写权限 session_save_path(__DIR__ . '/../sessions'); session_start();
内容的提问来源于stack exchange,提问作者Mostafa Briek
相关产品推荐
相关产品推荐

