nginx/php-fpm及網站目錄的許可權設定
核心總結:nginx、php-fpm 程序所使用的使用者,不能是網站檔案所有者。 凡是違背這個原則,則不符合最小許可權原則。
最佳實踐:
nginx 以nobody執行
修改nginx.conf
user nobody
重啟nginx伺服器
php-fpm 也以nobody執行
編輯檔案php-fpm.conf
user nobody
group nobody
重啟php-fpm
網站目錄設定為可讀即可,某些需要寫入許可權的目錄設定為777
nginx靜態資源 403 forbidden
有可能是selinux的原因
臨時關閉selinux
setenforce 0
永久關閉selinux
vi /etc/selinux/config
SELINUX=disabled
重啟伺服器
PS:
訪問出現異常,chrome控制檯報錯ERR_INCOMPLETE_CHUNKED_ENCODING
檢視日誌 /var/log/nginx/error.log
open() “/var/cache/nginx/fastcgi_temp/4/09/0000000094” failed (13: Permission denied) while reading upstream,
原因是:
nginx會使用fastcgi_buffer_size指定的大小的緩衝區用於快取fastcgi流的內容。當大小超出此大小時會繼續用fastcgi_buffers指定的數量和大小申請緩衝區。如果依然超出此大小,會將多出的內容寫入臨時檔案。上面日誌中反應的就是nginx無權寫入臨時檔案。
於是將/var/cache/nginx/使用者也設為nobody
chown nobody:nobody -R /var/cache/nginx/
解決問題。