报错信息如下
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Unknown error)
1. 网上搜索,基本上都是说80端口被占用,要kill掉那些进程,但是用 netstat 显示的是几个内网的ip地址(阿里云的 100.100.30.xx)也没有显示进程号
2. 看防火墙,也没有启动
# firewall-cmd --state
not running
3. 又看了看占用80端口的进程,只看到了aliyundun的进程,以为是这个进程占用了80端口,于是就准备,先把Nginx设置为开启启动,再重启一遍
systemctl enable nginx
4. 心血来潮,好久没搞linux了,看看这个新的控制命令 `systemctl` 都开机启动了哪些程序
systemctl list-unit-files --type=service | grep enabled
5. 一看,发现了问题,里边有一个`httpd`的进程,我去,既生瑜何生亮啊,原来是这个原因,立马查看是不是有apache在跑,果然
# ps -ef | grep httpd
root 799 1 0 12:15 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 832 799 0 12:15 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 833 799 0 12:15 ? 00:00:01 /usr/sbin/httpd -DFOREGROUND
apache 840 799 0 12:15 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 841 799 0 12:15 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 1596 799 0 13:06 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
用下边命令也可以查到 :
lsof -i :80
6. 果断关闭apache服务,并关闭随机启动
# 关闭开启启动,提示服务还在运行:
# systemctl stop httpd
Warning: Stopping httpd.service,but it can still be activated by:
httpd.socket
# 关闭服务:
# systemctl stop httpd.socket
# 查询是否关闭成功:
# ps -ef | grep httpd
root 1793 1700 0 13:55 pts/1 00:00:00 grep --color=auto httpd
7. 也不重启了,直接运行Nginx,成功:
# systemctl start nginx
# ps -ef | grep nginx
root 1801 1 0 13:55 ? 00:00:00 nginx: master process /usr/sbin/nginx
www 1802 1801 0 13:55 ? 00:00:00 nginx: worker process
原文地址:https://blog.csdn.net/zhangzhibinshuai/article/details/133271680
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。