解决Nginx failed (13: Permission denied) 报错
配置Nginx日志分割的时候,发现无法生效,查看nginx日志,报错
failed (13: Permission denied)
权限不足 然后查看目录权限如下
drwxr-xr-x 5 root root 4096 Jul 28 01:17 conf
drwxr-xr-x 5 root root 4096 Jul 28 01:28 html
drwxr-xr-x 5 root root 4096 Jul 31 11:57 logs
drwxr-xr-x 3 root root 4096 Jul 31 23:31 nginx-pid
文件的所有者和文件的属组为root有所有权限,其他用户没有写权限,我尝试创建了一个日志文件,并赋予777权限,发现日志可以写进去,看来是权限的问题了 查看Nginx进程信息
[root@ansu nginx]# ps -ef |grep nginx
work 16983 17753 0 20:30 pts/0
work 18686 20547 0 Jul31 ?
work 18697 20547 0 Jul31 ?
work 18702 20552 0 Jul31 ?
果然是权限问题,nginx是用work用户运行的,而work用户,不属于root组,也没有写入权限,所以,新建不了文件,报权限不足错误。 现在解决这个问题,有几种方式
- nginx使用root用户运行,但是,会使nginx权限过高,不太安全
编辑nginx.conf文件,将 更改下面位置
user root; worker_processes 1;
- 将user用户加入root组,但是,权限也是太高
usermod -g root user
- 将nginx目录下所有文件所属用户和所属组更改为user组user用户
chown -R user:user nginx
Nginx权限不足的问题,就基本上都可以按照这种思路解决