在过去的几个小时里,我一直在尝试调试它,并且已经解决了这么多问题,我似乎已经碰壁了
我在 CentOS7 下使用 nginx 安装了 Wordpress(如果重要,请使用 AWS Lightsail)。为此,我已确保
wp-content/uploads
目录是 766apache:apache
nginx 和 php-fpm拥有的目录,并且都在该用户下运行- seLinux
httpd_sys_rw_content_t
用于目录
这让我成功上传文件。它创建文件并且上述权限正确传播(ln -Z
并stat
以apache
用户身份运行)。文件是 666,但 766 似乎没有任何改变。我手动放置的旧文件可以正常使用。我能找到的唯一区别是手动上传的文件在 seLinux 中设置为
Context: unconfined_u:object_r:httpd_sys_rw_content_t:s0
虽然新的 403 文件是
Context: system_u:object_r:httpd_sys_rw_content_t:s0
我试过setenforce 0
但没有改变。重新启动了nginx,仍然没有变化。记录的错误是
2019/05/19 22:35:06 [error] 21393#0: *4010 open() "/usr/share/nginx/example/wp-content/uploads/2019/05/file.jpg" failed (13: Permission denied), client: 172.69.44.142, server: example.com, request: "GET /wp-content/uploads/2019/05/file.jpg HTTP/1.1", host: "www.example.com"
然而/usr/share/nginx/example/wp-content/uploads/2019/04/another_file.jpg
工作正常,所以它似乎也与 nginx 配置无关。
还有什么我想念的吗?
修复权限。766 不是目录的有效模式,至少如果您想访问其中的文件则不是。