答案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 因权限问题无法上传图片
希望这可以帮助!