_给客户部署服务器,系统版本是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