无法使用 PHP 写入 /var/www/ 目录,权限为 777

无法使用 PHP 写入 /var/www/ 目录,权限为 777

我不明白问题出在哪里。Apache 正在以我的标准用户身份运行,该用户实际上可以写入这些文件。

我应该怎么办?

答案1

一种可能性是,您启用了 SELinux,并且无法写入的文件/目录最初是在您的主目录中创建的(例如,您在那里解压它们,然后将它们移动到 /var/www/html)。SELinux 不允许 apache 修改这些文件,即使它们似乎具有正确的文件权限。尝试禁用 SELinux。如果这解决了问题,您可以永久禁用 SELinux 运行,或者您可以通过 SELinux 设置使这些文件和目录可供 apache 写入。

答案2

在控制台中使用以下命令检查 SElinux 是否启用。

selinuxenabled && echo enabled || echo disabled

如果返回“enabled”,则使用以下命令将其禁用

echo 0 > /selinux/enforce

现在检查apache是​​否可以写入用户目录。

答案3

我不喜欢禁用 SELinux 的想法.. 而是启用 SELinux 以便 Apache/PHP 可以写入您需要的地方。

您可以简单地更改目录的 SE 上下文以允许 httpd 上传文件:

chcon -t tmp_t www/

我必须做同样的事情才能让 Wordpress Media 上传功能在我的upload/文件夹中运行。请参阅我的 SU 帖子 @Wordpress 因权限问题无法上传图片

希望这可以帮助!

相关内容