如何使用PHP从apache文件夹中读取文件


How to read files out of the apache folder using PHP

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

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

我读过一些文章,说要允许PHP使用的用户访问脚本,但我不知道这一点,它安全吗?

首先查看文件的chown if apache。

其次,如果可读/可写,请检查权限。

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

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

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

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