在CentOS7環境中安裝了nginx后,啟動的時候報錯nginx: [emerg] bind() to 0.0.0.0:6080 failed (13: Permission denied)
。從字面意思上來說,這是權限不足。但出現這種錯誤可能有多種原因導致的。
1. 端口小于1024時
當端口小于1024時,且運行的賬號不是root
就會報這個錯誤。
解決辦法是修改nginx的配置文件,以user root;
啟動
2. 端口大于1024時
檢查一下selinux
是否開啟了。如果開啟了關閉selinux
試試
setenforce 0
如果關了selinux
能正常說明端口可能與selinux
的端口沖突了或http_port_t
中沒有開放對應的端口
[root@ptr ~]# semanage port -l | grep 6080
geneve_port_t tcp 6080
發現6080是geneve_port_t
的端口,要么修改自己的端口,要么修改geneve_port_t
的端口,然后再把6080添加到http_port_t
。附senamage 端口操作命令
senamage 端口 刪除 類型 [] 協議 TCP/UDP 端口
semanage port -d -t geneve_port_t -p tcp 6081
senamage 端口 增加 類型 [] 協議 TCP/UDP 端口
semanage port -a -t http_port_t -p tcp 6080
senamage 端口 修改 類型 [] 協議 TCP/UDP 端口
semanage port -m -t geneve_port_t -p tcp 6081