_給客戶部署服務器,系統版本是centos7.以前部署一直用的是centos6.5, 開始很順利,開開心心的rpm了nginx,成功啓動。訪問nginx首頁成功。ok!nginx
接下來的事,就有點慘不忍睹了。爲此付出了一下午的代價,差點砸壞電腦。 就是在作靜態文件映射的時候。始終出現403 forbidden錯誤。開始排查問題_centos
2. 排查映射文件是否具備"r"權限。發現也沒有問題。 3. 到這步就有點開始懷疑人生了,nginx版本不對?卸載重裝?還不對?再卸載重裝 因而開始了抓狂之路。 終於在反覆查找資料後,發現了一個不起眼的文章,原來是在centos7中,對於這種nginx轉向用於http請求的文件,要被賦予httpduser_contentt這個權限。哦沃特,簡直是shit。下面是解決方法 假設你的 Nginx 配置沒有任何問題,運行 getenforce 的結果是 Enforcing。 首先讓 SELinux 容許 httpd[1] 訪問用戶目錄。很簡單,root 運行 ``` setsebool -P httpd_enable_homedirs on 。
"-P" 的意思是 permanent,不帶 -P 的話系統重啓後恢復默認配置。服務器
而後修改 /home/user/static 的 SELinux context。告訴 SELinux,容許此目錄被 httpd 訪問:centos7
chcon -v -t httpd_user_content_t /home/user/static
ok到這一步 大功告成!!!!!!!code