这个报错有四种可能导致的情况:
- nginx进程中执行worker process的角色权限不够,用
ps -ef | grep nginx
来查看所有关于nginx的进程从而检查worker process的角色是谁,是否有足够的权限
如果权限不够,可以通过修改/etc/nginx/nginx.conf
文件中的user来换有足够权限的角色
- 部署文件的路径不对(这一点一定要注意)
一定要检查清楚路径是否是对的,路径是从根目录开始写的
-
权限问题,如果nginx没有web目录的操作权限也会导致该报错
该问题可以通过修改web目录的读写权限或者把nginx的执行用户改为目录的所属用户然后重启nginx即可
如上述图片中的路径加权限为:
chmod -R 755 /www //-R操作表示递归地应用权限更改,意思是将权限更改应用于指定目录下的所有文件和子目录。
重启命令:sudo systemctl restart nginx
或sudo service nginx restart
- SELinux被设置为了开启状态的原因
SELinux(security enhanced linux)安全增强型Linux系统是一个linux内核模块,也是Linux的一个安全子系统。主要作用是最大限度地减小系统中服务进程可访问的资源(最小权限原则),SElinx开启后会关闭系统中不安全的功能,它有两个级别:
- setenforce 0 :表示警告(Permissive)
- setenforce 1 :表示强制(Enforcing)
状态分为以下三种:
- SELINUX=enforcing #selinux开启,级别为强制
- SELINUX=permissive #selinux开启,级别为警告
- SELINUX=disabled #selinux关闭
其他具体关于SELinux的内容可以自行了解
首先查看SELinux的状态,可以使用/usr/sbin/sestatus -v
进行查看,如果是如下情况就需执行关闭操作
关闭SELinux的两种方法:
- 临时关闭(不用重启系统):
setenforce 0
; - 修改配置文件
/etc/selinux/config
,将SELINUX=enforcing
改为SELINUX=permissive
或者SELINUX=disabled
(需要注意的是:修改配置文件之后需要重启系统reboot)