如何限制对apache文档根目录以外的文件的访问?

我在/ var / www / site1和/ var / www / site2文件夹中有虚拟主机。 我想限制对apache虚拟主机文档根目录以外的文件的访问,即site1不能访问site2的文件。

现在这个脚本在/ var / www / site1下工作正常,这不好:

$filename = "/var/www/site2/somefile"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); echo $contents; 

请问如何解决这个问题?

非常感谢你!

这个比你想象的要复杂一些。 问题是,一旦你运行一个脚本,脚本将做任何操作系统允许的操作。 该脚本将由apache Web服务器的相同用户运行,并且Web服务器必须能够读取这两个目录才能为其提供网页。

所以,为了让你的脚本无法看到其他的目录,你需要运行它作为另一个用户而不是web服务器。 你可以使用suexec来做到这一点,当然你需要小心的设置或者你可以创build安全问题。