Nginx

nginx下wordpress文件上傳成功但嘗試載入文件返回403

  • May 20, 2019

在過去的幾個小時裡,我一直在嘗試調試它,並且已經解決了這麼多問題,我似乎已經碰壁了

我在 CentOS7 下使用 nginx 安裝了 Wordpress(如果重要,請使用 AWS Lightsail)。為此,我已確保

  • wp-content/uploads目錄是 766
  • apache:apachenginx 和 php-fpm擁有的目錄,並且都在該使用者下執行
  • seLinuxhttpd_sys_rw_content_t用於目錄

這讓我成功上傳文件。它創建文件並且上述權限正確傳播(ln -Zstatapache使用者身份執行)。文件是 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 不是目錄的有效模式,至少如果您想訪問其中的文件則不是。

引用自:https://serverfault.com/questions/968011