【问题标题】:Owner Read Write Only Files Showing Error on Include Files in PHP所有者只读文件在 PHP 中包含文件时显示错误
【发布时间】:2015-08-18 18:13:26
【问题描述】:

我有一个 PHP 文件,其中我在同一个文件夹中包含了一些其他文件。它们是数据库连接和查询文件。当我只授予这些包含文件的所有者只读和只写访问权限时,当我运行包含它们的主文件时,它会在那里抛出 SQL 异常。当我授予其他人可读的权限时,它就起作用了。如果文件是所有者读取和写入的,那么它在正在运行的浏览器上的主文件中不起作用,这是真的吗?或者有什么方法可以让包含文件的所有者只能访问?

【问题讨论】:

  • 如果我对您的理解正确:PHP(或者更确切地说是您的网络服务器)以自己的用户身份运行。如果文件归他人所有,它可能无法读取这些文件。您可能想要更改文件的组所有权/权限。
  • 所以如果它的所有者只读取和写入文件。那么当我们运行这些文件时,他们不会读取它吗?
  • 谁拥有这些文件?它们可能由与运行 Apache/PHP 的用户不同的用户拥有。 (我不能 100% 确定我是否正确理解了这个问题。)
  • 文件归root用户所有

标签: php


【解决方案1】:

您说您的应用正在引发 SQL 异常。这意味着当您的 php 代码尝试访问您的数据库管理器而不是 php 包含错误时,就会出现错误。如果未包含 php 文件,当 php 在那些无法访问的包含文件中遇到变量或函数时,您应该会收到 HTTP500 错误。因为您遇到了 SQL 错误,所以我会检查正在使用哪个用户 ID 来访问您的数据库,以及该用户 ID 在数据库中是否具有访问 SQL 语句所需的表的正确权限。

【讨论】:

  • 应用程序仅在连接文件具有所有者权限时才显示错误。但是当它也分配给其他用户权限时。然后应用程序工作正常。所以我猜不涉及变量问题
  • 首先连接失败。as basic include file in connection first
  • 检查文件是否被包含的简单方法是检查该文件中的功能之一是否存在。如果执行以下命令会得到什么: if (function_exists('your function name')){echo "include works";}else{echo "include failed";}
  • 它失败了。我想试试 nw
  • 您可以授予 Web 服务器用户 ID RW 访问您的文件/目录或运行 Web 服务器的组的权限。首先,我会选择用户 ID。您可以通过 php "get_current_user()" 命令找到当前运行脚本的用户。
猜你喜欢
  • 2011-05-27
  • 2014-03-27
  • 2020-06-20
  • 1970-01-01
  • 2021-02-18
  • 1970-01-01
  • 2020-11-15
  • 2012-08-27
相关资源
最近更新 更多