我最近切换到 Linux,并尝试自己设置 LEMP,我已经管理了大部分内容,但是我现在遇到了无法修复的权限问题。本地 WordPress 站点无法上传任何文件。
我的设置
- php-fpm 以我的用户身份运行
- nginx 以 nginx 用户身份运行
- 站点存储在/home//Websites/example.com
这仅用于本地开发。
/home/my-user drwxr-xr-x
/home/my-user/网站 drwxrwxr-x
/home/my-user/Websites/example.com drwxrwxr-x
/home/my-user/Wbsites/example.com/ wp-内容 drwxrwxr-x
全部归 my-user:my-user 所有
除了上传之外,该网站正在运行。
编辑:问题似乎来自 SELinux。仍然不确定要启用什么来修复上传问题。
答案1
该问题与文件系统权限无关,但似乎是 selinux 阻止了对上传文件夹的写入访问。
首先将selinux 设置为宽容模式。要执行此操作,请以 root 身份运行:
setenforce 0
然后通过运行以下 return 检查命令是否已正确应用Permissive
:
getenforce
现在应该可以将文件上传到本地上传文件夹。完成后,检查 selinux 日志中是否有错误。日志文件位于 /var/log/audit/audit.log。
您上传文件夹的安全上下文很可能是错误的。检查以下输出:
ls --context
您需要确保上传文件夹中具有正确的安全上下文。该文件夹应该具有httpd_sys_rw_content_t
允许 Web 服务器写入该目录的上下文。
答案2
尝试将上传目录设置为777,然后上传文件。然后您将看到哪个用户正在创建文件。
当您看到这一点时,您可以将该目录更改为该用户并设置适当的权限。
在我的 LAMP 系统上,整个 wordpress 树归 www-data:www-data 所有。
设置完毕后,我还可以更新/安装 WordPress 插件。