Nginx
nginx下wordpress文件上傳成功但嘗試載入文件返回403
在過去的幾個小時裡,我一直在嘗試調試它,並且已經解決了這麼多問題,我似乎已經碰壁了
我在 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 不是目錄的有效模式,至少如果您想訪問其中的文件則不是。