PHP调用file_get_contents打开users.json提示Permission denied权限拒绝求助
权限拒绝问题排查与解决
1. 修复代码参数错误
你的users.php中file_get_contents的调用方式有误,该函数第一个参数需要完整的文件路径,你错误地拆分了路径为两个参数,导致PHP尝试读取目录而非文件,这是触发权限问题的直接原因之一。修正后的代码:
function getUsers() { $filePath = __DIR__ . '/users.json'; $users = json_decode(file_get_contents($filePath), true); echo "<pre>"; var_dump($users); echo "</pre>"; }
__DIR__表示当前脚本(users.php)所在的目录,用.拼接文件名得到完整路径。
2. 确认文件位置
检查users.json是否和users.php在同一目录下:
- 如果文件在项目根目录(与
index.php同目录),路径需改为__DIR__ . '/../users.json' - 也可以直接使用绝对路径,例如
'C:\XAMPP\htdocs\你的项目名称\users.json'
3. 调整文件权限
Windows系统下,XAMPP的Apache进程可能没有读取users.json的权限,按以下步骤设置:
- 找到
users.json文件,右键选择「属性」 - 切换到「安全」选项卡,点击「编辑」添加用户
- 添加
Everyone用户,并赋予读取权限;或者添加Apache运行用户(通常为NT AUTHORITY\IUSR)并配置读取权限
4. 验证路径正确性
可以先打印完整路径确认是否指向目标文件:
function getUsers() { $filePath = __DIR__ . '/users.json'; echo "文件路径:" . $filePath . "<br>"; // 检查路径是否正确 $users = json_decode(file_get_contents($filePath), true); echo "<pre>"; var_dump($users); echo "</pre>"; }
内容的提问来源于stack exchange,提问作者Rayan Snooki ريان سنوكي
相关产品推荐
相关产品推荐

