在 php 中对 777 权限文件执行 fopen 时权限被拒绝

3 permissions php

我对 php 或文件权限并不陌生。但我只是将一个非常简单的脚本迁移到我设置的新服务器上。

脚本运行的文件夹位于文档根目录中。该文件夹的权限设置为 755。

该文件夹的所有者是 gsta。该文件的所有者是 gsta。

我打开了 error_reporting 并得到:

Warning: fopen(log.txt): failed to open stream: Permission denied in /var/www/html/log.php on line 13
Run Code Online (Sandbox Code Playgroud)

我试过了:

chmod("log.txt", 0777)
Run Code Online (Sandbox Code Playgroud)

在 php 中,并且还获得权限被拒绝。

我弄完了:

ps -u | grep httpd
Run Code Online (Sandbox Code Playgroud)

并得到:

gsta      1012  0.0  0.0 108608   808 pts/3    S+   22:45   0:00 grep --color=auto httpd
Run Code Online (Sandbox Code Playgroud)

代码:

$filename = 'log.txt';
$handle = fopen($filename,"a+");
echo "fh:" . fwrite($handle, $payload . "\n") . $handle . "<br/>";
fclose($handle);
Run Code Online (Sandbox Code Playgroud)

即使 PHP 安全模式关闭不重要

我尝试将文件的所有者设置为nobody(apache通常在nobody下运行,我也尝试将所有者设置为apache。

我已经查看了 google 中的每一个帖子,它总是基本的东西,所有这些我都尝试过。这是另一台服务器上的已知工作脚本。我尝试检查 php.ini 以寻找一些会导致此问题的设置。我试过删除文件(因为它应该在这种情况下创建它)

有没有人有任何想法?我已经尝试了所有我能想到的。

小智 7

是否有可能是一些安全性的东西,比如 SELinux,阻止了这些操作?

我遇到了类似的问题setenforce 0,并且可以关闭 SELinux的命令成功解决了它。

  • 谢谢你让我留了更多白发。 (我在 RedHat,对于其他想要解决权限问题的人) (2认同)