【问题标题】:How to read files out of the apache folder using PHP如何使用 PHP 从 apache 文件夹中读取文件
【发布时间】:2012-04-15 14:07:32
【问题描述】:

我已经这样做了很长时间,我的意思是,我可以毫无问题地使用 PHP 读写文件,但现在我需要做一些不同的事情,我需要访问 apache 的 www 文件夹中的文件,例如:

我在Linux上使用apache时通常使用路径/var/www/,但是如果我需要访问文件夹/etc/anyfolder/anyfile.conf中的文件,我该怎么做呢?

我读过一些文章说要授予 PHP 用来访问脚本的用户权限,但我不知道这是否安全?

【问题讨论】:

  • 当你说“访问”是指读、写或两者兼而有之时?
  • PHP file permissions的可能重复
  • 是的,我想在屏幕上阅读、写作、打印等等……

标签: php apache file-io directory


【解决方案1】:

如果是apache,先看看文件的chown。

如果可读/可写,再检查权限。

第三,你需要看看你的 open_basedir php.ini 和 apache 中的参数。

【讨论】:

  • 完全忘记了open_basedir,我快疯了——谢谢!
【解决方案2】:

如果您想通过 PHP 访问任何文件,那么运行 PHP 的用户或组必须具有访问该文件的权限。话虽如此,如果您只需要读取文件,那么您可以克隆文件并访问副本。如果有问题的文件很少更改,那么您可以手动执行此操作,否则您可以通过 shell 脚本和 cron 来执行此操作,它会每隔一段时间(无论您需要多久)复制文件。这样你就不会打开实际文件的权限。如果您需要写入该文件,那么我想您可以采取类似的方法(通过 PHP 访问文件的副本,然后运行一个脚本,将其复制到 /etc 文件夹中的原始文件中,但如果您这样做,您应该还要在写入原始文件之前验证发送的任何用户输入,以确保没有恶意推送。

您要担心的主要事情是确保您的 PHP 文件安全,以防止任何人以恶意意图运行脚本(无论其功能如何,您都应该对所有 PHP 文件执行此操作)。这意味着验证任何用户输入并确保如果有人要访问任何 PHP 文件(或在与 PHP 相同的用户/组下运行的服务器上的任何其他文件),您的敏感系统文件将受到保护。还只提供执行您正在做的任何事情所需的最小权限(即,如果您只想读取文件,则无需授予写入或可执行权限,如果您只想允许访问,则无需授予目录级别访问权限到该目录中的特定文件)。

最后一件事是先看看为什么需要让 PHP 访问这些文件,看看是否有替代解决方案。如果您允许访问 /etc 文件,那么我认为它们是某些应用程序的配置文件。考虑到像这样更新文件会导致应用程序对所有其他用户的行为发生变化,这真的是您想要的吗?

【讨论】:

  • 是的,这正是我需要的。我正在创建一个系统来维护服务器并使菜鸟用户更容易,你知道吗?如果用户愿意,我需要访问某些应用程序的 conf 文件以更改它们的行为。在将它们上线之前,我会确保权限和我的脚本是否足够安全。
  • 作为守护进程运行的应用程序很可能需要在更新配置后重新启动 - 请记住这一点,因为这可能超出了您应该允许 PHP 用户执行的操作范围(例如:您真的希望有人通过 PHP 脚本重新启动 Apache?)
  • 实际上是的...我不会对在线服务器这样做,它是控制公司应用程序的内部服务器,我不会允许任何人使用此应用程序,只有一两个受监控的可靠人购买同一应用程序的日志,如果出现问题或他们尝试做不同的事情,公司就会解雇他们并雇用其他人。我需要这个来度过我的假期:).. 非常感谢,你真的很有帮助。
猜你喜欢
  • 1970-01-01
  • 2010-10-17
  • 1970-01-01
  • 1970-01-01
  • 2021-01-18
  • 1970-01-01
  • 2021-06-27
  • 1970-01-01
  • 2012-04-12
相关资源
最近更新 更多