Centos 8 环境下Nginx [emerg] open file ‘/etc/nginx/conf.d/my.conf’ failed (13: Permission denied)报错原因之一
2022-05-18
Nginx配置虚拟主机时,遇到报错信息:Nginx [emerg] open file ‘/etc/nginx/conf.d/my.conf’ failed (13: Permission denied),很明显是文件权限问题。
my.conf是新增的虚拟主机配置,仔细检查了文件格式,没有任何问题,那么就一般是里面配置的网站目录问题了,例 :
...
location / {
root /home/www;
index index.html index.htm index.php;
}
...
root是磁盘上的网站根目录路径,需要Nginx有访问权限。
关键点来了,访问权限从大的层面上来讲有两个部分:
- linux系统默认的用户访问权限系统,可以通过命令chmod来修改,面向文件。
- SELinux增强访问系统,面向进程。
// 修改文件/目录访问权限
$ sudo chmod -R 777 /home/www
目前大多数Linux都默认开启了SELinux管理,因此即便要访问的目录权限为最高:777,如果进程(如Nginx)被SELinux拦截,依旧无法正常访问。
问题解决方法:首先保证root目录有基本的用户访问权限,其次是配置SELinux,让启动后的Nginx进程有访问权限,系统安全要求不高的情况下,简单点就直接关掉SELinux。
// A.临时
$ sudo setenforce 0
// B.永久, 将SELINUX=enforcing改为SELINUX=disabled
$ sudo /etc/selinux/config
...
SELINUX=disabled
...
(版权归cpury.com所有,转载请注明出处。)