今天在启动一个 Centos 上的 Nginx 时,死活启不起来,配置文件中 listen 9090 端口,看 log 启动时会报:2018/03/06 16:54:31 [emerg] 7984#0: bind() to 0.0.0.0:9090 failed (13: Permission denied)
。
经过一番查询,发现是因为 SELinux 导致的,平时用到的不多,直接将其关闭即可。
查看状态
1 | /usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态 |
or
1 | getenforce ##也可以用这个命令检查 |
关闭SELinux:
临时关闭(不用重启机器):
1 | setenforce 0 ##设置SELinux 成为permissive模式 |
修改配置文件需要重启机器:
1 | 修改/etc/selinux/config 文件 |
重启机器即可
看了下系统中并没有进程在占用 9090 端口。最后通过 http://www.err123.com/2017/08/29/nginx-emerg-bind-to-0-0-0-0-8081-failed-13-permission-denied/?lang=en 这篇文章的最后一个方案解决了这个问题。
已上外链已失效。
大致看了下 SELinxu 的作用一个 Linux 的强化方案,大部分情况下是需要启动的 https://www.zhihu.com/question/20559538。