0

在此处查看示例:http: //mattpotts.com/portal/

includeme.htm在所需路径上的每个目录中都放了一个以查找故障点。它在具有相同目录结构的本地机器(windows)上运行良好,但在我的远程(linux)服务器上失败。

目录结构:

+-firefli/                 drwx--x--x
  +-private_html/          drwx------
    +-foo/                 drwxr-xr-x
    +-bar/                 drwxr-xr-x
    +-portal/              drwxr-wr-w
  +-public_html/           drwxr-wr-w
    +-foo/                 drwxr-wr-w
    +-portal/              drwxr-wr-w

权限确认它是private_html导致问题的目录。希望您能看到目录结构的目的,我不知道这是否是一种常见的做事方式,但它对我有用。嗯,直到现在。

我已经问了很长时间,但我的问题很简单:设置为有什么问题private_htmldrwxr-xr-x?鉴于我不希望它可以通过网络访问。但是权限不应该这样做吗?因为它是 apache 使public_html目录可以通过 http 访问。

4

3 回答 3

3

您不需要阻止对 private_html 具有文件夹/文件权限的 Web 用户,因为它位于 Web 根目录之外。正如您所说,网络用户只能访问 public_html 中的内容

为了将来的调试速度,如果你有一个相对的 web 路径,你可以使用 realpath 将其转换为真实路径:

$path = realpath('../../private_html');
// $path is now /public_html/foo/private.html or whatever
于 2010-01-04T23:08:41.373 回答
1

好吧,如果您已DocumentRoot正确设置指向public_html,则无论您对其赋予什么权限,都无法从网络访问它。

如果您不输入将重定向它的 .htaccess 文件,则无法从 Web 访问 Private HTMl。如果您不知道这意味着什么/如何做到这一点,那么您是安全的。

您应该可以将这些权限设置为您的脚本所需的任何权限。

于 2010-01-04T23:07:22.530 回答
0

有什么user:groupprivate_html?Web 服务器需要是组的成员或文件的所有者。为了读取目录内容,目录需要有execute网络服务器打开它的权限。本质上,它们应该user:grouppublic_html. 您只想禁止该write权限。到他的网络服务器。如果您将文档根目录设置public_html private_html为无论权限如何,都无法通过网络访问。另外,我总是realpath在路径参数和文件操作上使用。

于 2010-01-04T23:20:07.867 回答