Nginx 启动报 [emerg] bind() to 0.0.0.0:XXXX failed (13: Permission denied)错误处理
Permission denied权限不足,主要有以下原因:
(一)端口小于1024
当端口小于1024时,且账户不是 root
会报错
解决方案: 切换 root
账户进行nginx配置
(二)端口大于1024
主要原因是因为selinux影响端口的开放,系统默认是开启的selinux;
关闭selinux
# 查看selinux状态
getenforce
# 关闭selinux
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# 配置模式说明:
## SELinux服务有三种配置模式:
## enforcing:强制启用安全策略模式,将拦截服务的不合法请求。
## permissive:遇到服务越权访问时,只发出警告而不强制拦截。
## disabled:对于越权的行为不警告也不拦截。
# 查看结果
[root@root]# getenfoce
Enforcing #开启中
#友情提示:设置完成之后,重启nginx服务,即可使用端口
selinux强制添加端口
# 安装selinux工具:semanage
yum install -y semanage
## 友情提示:如果没有安装包,则使用方式2: yum provides semanage 安装
## 或者方式3:yum -y install policycoreutils-python.x86_64
# 查看所有开放的端口
semanage port -l
# 查看所有开放的[http服务端口]
semanage port -l | grep http_port_t
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
# 查看某个端口是否开放
semanage port -l | grep [端口号]
# 添加端口
semanage port -a -t http_port_t -p tcp [端口号]
## 参数说明:-a表示添加,-t表示类型也就是http_port_t,-p表示协议也就是tcp协议
# 删除端口
semanage port -d -t http_port_t -p tcp [端口号]
## 参数说明: -d表示删除,-t表示类型也就是http_port_t,-p表示协议也就是tcp协议