WinNMP中”Directory access is forbidden.”错误的解决方法

70次阅读
没有评论

问题描述

在使用 WinNMP(基于 Nginx 的 Windows 平台集成环境)时遇到了一个问题。他安装了 WinNMP 并添加了一些用于检查安装情况的文件。不管他如何设置 WinNMP Manager 的项目目录,当从浏览器中读取测试文件时,出现以下问题:
– 通过访问 http://127.0.0.1/public_html/test.htm 可以正确读取简单的 HTML 文件。
– 通过访问 http://127.0.0.1/public_html/application/index.html 返回 “directory access is forbidden” 错误。
– 通过访问 http://127.0.0.1/public_html/index.html 返回 “404 file not found” 错误。

用户提出了两个问题:
1. 如何将 http://127.0.0.1 的根目录设置为 C:/Proj/MyRG/public_html/application,而不是 C:/Proj/MyRG/public_html
2. 如何获得访问目录的权限?

解决方案

请注意以下操作可能因版本差异而略有不同,建议操作前备份重要数据。

解决方案1:更改根目录设置

要将根目录设置为 C:/Proj/MyRG/public_html/application,你需要修改 Nginx 的配置文件。

  1. 打开 c:\winnmp\conf\nginx.conf 文件。
  2. 定位到 server 部分,找到类似于以下的配置行:
    nginx
    root "C:/Proj/MyRG/public_html/application";
  3. 确保该行中的路径正确,指向你想要的根目录。
  4. 保存文件并重新启动 WinNMP 服务。

解决方案2:解决访问权限问题

如果遇到 “directory access is forbidden” 错误,很可能是因为 Nginx 没有足够的权限访问目标目录。你可以尝试以下方法来解决这个问题:

  1. 确保 Nginx 运行时具有访问目标目录的权限。检查 C:/Proj/MyRG/public_html/application 文件夹的权限设置,确保 Nginx 用户具有读取权限。
  2. 如果 Nginx 用户没有访问权限,你可以通过以下方式之一解决:
  3. C:/Proj/MyRG/public_html/application 目录的权限设置为允许所有用户读取。
  4. 更新 Nginx 配置,将 location 部分的权限设置为允许访问,例如:
    nginx
    location /public_html/application/ {
    # 允许所有用户访问
    allow all;
    # 其他访问控制设置
    }

其他提示

  1. 问题回复中提到,根据你的配置,你可以通过访问 http://127.0.0.1/index.html 来访问你的页面,因为 public_html/application 是你定义的服务器根目录。

这些步骤应该帮助你解决在 WinNMP 中遇到的问题,确保根目录设置正确并配置了适当的访问权限。如果问题仍然存在,你可能需要检查其他配置细节或寻求进一步的支持。

正文完