1. 程式人生 > >nginx/php-fpm及網站目錄的許可權設定

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/

解決問題。