本帖最后由 zhaorong 于 2019-4-25 18:14 编辑
我用的虚拟机是VM,Linux版本是CentOS6.3在安装完Nginx之后准备启动Nginx服务
切到目录:
- [root@localhost ~]# cd /usr/local/nginx/sbin
- [root@localhost sbin]# ./nginx
复制代码
结果出现了问题:
- nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
- nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
- nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
- nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
- nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
- nginx: [emerg] still could not bind()
复制代码
,Nginx服务使用80端口,看报错信息大概就是80端口已经被占用。
既然80端口已经被占用,那我们就来看看是什么占用了80端口。
- [root@localhost ~]# netstat -ntlp|grep 80
- tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1468/nginx
复制代码
看结果,是Nginx进程占用的。那我们就杀死Nginx进程再启动Nginx服务。
首先查看与Nginx有关的进程。据我观察,前四个是Nginx有关的进程,这四个进程要
全部杀死,才能启用Nginx。第四个进程是我们抓取Nginx的进程没有关系。
- [root@localhost sbin]# ps -ef |grep nginx
- www 2479 1 0 12:46 00:00:00 nginx: worker process
- www 2480 1 0 12:46 00:00:00 nginx: worker process
- www 2483 1 0 12:46 00:00:00 nginx: worker process
- www 2485 1 0 12:46 00:00:00 nginx: worker process
- root 2491 2405 0 12:47 pts/0 00:00:00 grep nginx
复制代码
然后我们执行命令:
- [root@localhost sbin]# kill -9 2479
- [root@localhost sbin]# kill -9 2480
- [root@localhost sbin]# kill -9 2483
- [root@localhost sbin]# kill -9 2485
复制代码
查看杀死Nginx1进程后的结果:
- [root@localhost sbin]# ps -ef |grep nginx
- root 2495 2405 0 12:48 pts/0 00:00:00 grep nginx
复制代码
这时候我们再次开启Nginx服务:
- [root@localhost sbin]# ./nginx
- [root@localhost sbin]#
复制代码
这时候成功了!!!!!!
这个过程中要注意的是:与Nginx有关的进程要全部杀死!我之前没有全部杀死导致一直有Nginx进程存在启用Nginx服务就一直报错。