Apache2+PHP fopen() 权限

Apache2+PHP fopen() 权限

介绍:

很抱歉,互联网上有大量此类帮助,但我对 Linux 不太了解,所以才寻求帮助。

问题:

我已经在 debian 下安装了 apache2 和 PHP5,并且使用 PHP fopen() 函数产生了典型的结果:

警告:fopen(/some/where/some.txt):无法打开流:/some/file/location/of/script/index.php 的某行中权限被拒绝

希望得到的答复:

如果有人能为我提供一个安全/最低要求的解决方案以使其发挥作用,我将不胜感激,如果也能解释这一点就更好了。

弱假设:

某些文件夹或配置极有可能需要设置正确的权限,但是当谈到这一点时,我却陷入了黑暗森林。

笔记:

  • Apache 是从源代码编译并安装的。PHP 是从源代码编译并安装的。
  • 从源代码安装,没有默认的 php.ini
  • 以上应该考虑我不熟悉 Linux 并且没有获得权限。

答案1

这可能与你的 Apache/PHP 设置无关,无论你提供了什么无信息关于这些是如何配置的。最有可能的是,运行 PHP 脚本的用户没有打开文件的权限。如果不知道它是如何配置的,我就无法告诉你如何获取这些信息(ps auxwww | grep php 可能显示用户)。您也没有告诉我们文件的权限/所有权是什么(这chmod a+wr filename.txt使得任何用户都可以读取/写入文件 - 但这严重损害了安全性)。

如何使您的文件可访问且安全取决于您的安全策略,但如果对机器/它的用途或其配置方式一无所知,即使有您的安全策略,这也会变得不可能。

进一步的考虑是,将数据存储在平面文件中,通过 PHP 直接访问几乎总是非常坏主意。它无法扩展,并且可能导致死锁和竞争条件。

相关内容