Nginx
/var/lib/nginx/client_body/0000000011 使用 node.js 失敗(13:權限被拒絕)
我將
node.js
Nginx 用作在 Slackware 14.1 上執行的 Web 伺服器。我創建了一個上傳文件的頁面。在我的開發機器(Debian 之類)中它工作正常,但在生產中(Slackware 伺服器)我得到這個錯誤
/var/log/nginx/error.log
:2015/10/09 15:08:44 [crit] 1231#0: *5 open() "/var/lib/nginx/client_body/0000000003" failed (13: Permission denied), client: 10.0.0.22, server: localhost, request: "POST /home/perfil_usuario/upload HTTP/1.1", host: "aluno.fio.edu.br", referrer: "http://aluno.fio.edu.br/home/perfil_usuario/upload"
Nginx 返回一個
500 Internal Server Error
.我搜尋並嘗試了許多文章的修復,但錯誤仍在繼續。
正如錯誤消息所說,這是一個權限問題。
這通常是由於 nginx 程序使用者(
www-data
例如)沒有對父目錄之一的讀取/執行訪問權限引起的。檢查
/var/lib/nginx/client_body/
並確保每個目錄級別的權限都正確以解決問題。
就我而言,問題是 /var/lib/nginx 的所有權是錯誤的。nginx 寫入的所有其他目錄都歸 www-data 所有,而 ’nginx 目錄歸 root 所有。在這種情況下,最好的解決方案是更改目錄所有權以匹配 nginx 寫入的其他目錄的所有權。