403一般代表没有权限访问。
出现问题:更改nginx默认root目录后出现403
解决思路:
1.sellinux作怪,常见,也容易忽略。可以getenforce 查看当前sellinux状态
解决办法:
a.临时:
[root@web2 www]# setenforce 0b.永久:
[root@web2 www]# vim /etc/selinux/config SELINUX=enforcing 修改为 SELINUX=disabled 然后重启生效2.没有设置默认首页文件导致,可以通过访问绝对路径查看是否有问题,如打开www.iyunw.cn/index.htm试试,如果可以就代表是此问题,前提网站目录需要有index.htm文件
解决办法:
location / { root /data/www; index index.html index.htm index.php; }3.文件权限不对
yum 安装nginx默认运行用户是nginx,我们需要给网站目录更改为nginx用户的权限,如下范例在/data/www下文件
解决办法:
[root@web2 www]# chown -R nginx.nginx /data4.运行静态文件没有问题,但是发现打开php就出现403,php配置已经加载
这种问题一般是php运行用户yum安装是apache,由于apache用户无法对nginx用户的文件操作,需要修改php配置文件,将用户改为nginx,或者开放文件夹和文件权限给apache用户。
我的解决办法,php-fpm用户为nginx:
[root@web2 www]# vim /etc/php-fpm.d/www.conf user = apache group = apache 改为 user = nginx group = nginx 重启php-fpm
这只是我遇到的常见问题,如果有其他问题也可以按照这种思路查看。
评论区