require_once(../../路径/到/运行script.php)未能打开流权限被拒绝
在这里看到一个例子:http://mattpotts.com/portal/require_once(../../路径/到/运行script.php)未能打开流权限被拒绝
我把一个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_html
为drwxr-xr-x
?鉴于我不希望它可以通过网络访问。但是,权限不应该这样做,如果他们?因为它是通过http访问public_html
目录的apache。
好吧,如果您已将DocumentRoot
正确设置为指向public_html
,那么无论您对其拥有何种权限,都无法通过网络访问它。
如果没有您输入.htaccess文件来重定向,则无法从Web访问专用HTMl。如果你不知道这意味着什么/如何去做,你是安全的。
您应该很好地将这些权限设置为任何脚本所需。
您不应该在private_html上阻止具有文件夹/文件权限的Web用户,因为它位于Web根目录之外。正如你所说的,网络用户只能得到的东西在的public_html
对于未来的调试速度,如果你有一个相对的网络路径,你可以使用真实路径将其转换为一个真正的路径:
$path = realpath('../../private_html');
// $path is now /public_html/foo/private.html or whatever
private_html上的权限只是它们来的权限。我没有碰过他们。然而... – Matthew 2010-01-04 23:12:54
哪些user:group
为private_html
? Web服务器需要是组的成员或文件的所有者。为了读取目录内容,目录需要具有Web服务器的execute
权限才能打开它。基本上它们应该与public_html
具有相同的user:group
。您只是想禁止write
权限。托管他的网络服务器。如果您已将文档根目录设置为public_html
private_html
无法通过网络访问,无论权限如何。另外,我总是在路径参数和文件操作上使用realpath
。
谁可以访问?如果我将它从drwx改为drwxr-xr-x? – Matthew 2010-01-04 23:11:19
它不能通过网络访问。但其他FTP用户可以访问它。 (当然,假设没有错误的htaccess文件存在)。 – 2010-01-04 23:12:15
你为什么要让它从public_html访问? – 2010-01-04 23:12:37