【问题标题】:php fopen doesn't open the file, it permission to read is not given to the world/public?php fopen 不打开文件,它的读取权限没有授予世界/公众?
【发布时间】:2010-10-15 07:00:38
【问题描述】:

如果文件权限为440,php fopen打开文件读取失败。我不想给文件444权限,这样就不能直接通过URL访问了。

【问题讨论】:

  • 文件的所有者和组是谁?
  • 它是一个托管环境,所以创建文件的用户,即我将是所有者和我不知道的组。

标签: php file file-permissions


【解决方案1】:

假设您将 Apache 与 PHP 一起使用,解决此问题的最简单方法是使用 Apache 限制对文件的访问,但允许全局读取访问。这样做的方法是将所有你想要禁止的文件保存在它们自己的目录中,并在 .htaccess 文件中放置:

Order Allow , Deny
Deny from all

现在您可以拥有全局读取权限,但如果您尝试直接从 Web 访问文件,您将收到 Permission Denied 错误。

【讨论】:

    【解决方案2】:

    您可以按照 tj111 的建议进行操作,使用 .htaccess 阻止它。

    但更好的办法是将其放在 www 根目录之外。

    例如,如果您的 PHP 文件位于 /home/user/public_html/ 中,请将您的文件设置为访问受限,例如在 /home/user/includes 中给他们 644 (rw-r--r--)。您可以将目录权限限制为 711 (rwx--x--x),所以没有人,但您可以看到那里有哪些文件。不过,这并不妨碍您使用 PHP 读取或包含这些文件。

    【讨论】:

      猜你喜欢
      • 2020-06-04
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 2017-04-07
      • 1970-01-01
      • 2016-11-09
      相关资源
      最近更新 更多