PHP的Apache文件权限,但不能直接访问

时间:2013-06-05 16:26:32

标签: php apache permissions

我安装了一台Apache服务器并且正在玩它。我无法弄清楚的是如何正确设置此设置的权限:

我不希望我的文件可以从外部访问(即./files/file1.foo) - 这个目录中有很多文件,我不希望人们能够阅读它们。到现在为止还挺好。在我的情况下,chmod o+r能够阅读,反之亦然。

然后我有一个PHP脚本来处理与每个用户的会话,他们拥有其中一个文件并且应该能够查看它,但只能查看它,而不是其他文件。假设文件是​​图片。我会写<?php ... echo "<img src=\"files/file5.foo\"> ?>来显示这个文件。但这不起作用,因为PHP也没有文件的权限。

处理此问题的方法是什么?

1 个答案:

答案 0 :(得分:2)

对于这些要求,最佳解决方案是将受保护的文件存储在公共HTML之外,并使用PHP脚本来提供它们。然后,PHP可以检查是否允许当前用户访问所请求的文件。

看看this example。对于内嵌图像,请不要设置文件传输标题,只输出内容(您仍然可以输出内容类型标题,但不需要)。