重启nginx:[emerg]绑定()到0.0.0.0:80失败(98:地址已经在使用中)

5
我尝试运行sudo service nginx restart命令,但出现了以下错误:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

我认为这是关于符号链接的问题?
ln -s ../sites-available/default default

我尝试

cd /etc/nginx && grep -R listen *

sites-available/default:        listen 80;
sites-enabled/default:        listen 80;

我应该怎么修复它?


我试图终止一个程序,但当我想重新启动它时,我必须再次终止它。这是正常的吗?还是可以修复?抱歉我是新手。 - Kanin Peanviriyakulkit
什么进程正在使用端口80?是nginx还是其他什么东西?在您的服务器上,只有一个进程可以监听一个端口,因此您将不得不禁用任何其他设置为声明端口80的进程。 - kchan
我 grep -R listen * 是在 sites-available/default: 和 sites-enabled/default: 中使用的。 - Kanin Peanviriyakulkit
2
使用“ps -auxf”命令查看服务器上当前正在运行的进程。或者使用“netstat -tulpn”命令查看哪些进程正在使用哪些端口。这将让您找出占用服务器端口80的进程。请参阅此链接以了解如何使用“netstat”:http://www.cyberciti.biz/faq/check-network-connection-linux/。 - kchan
它仅返回tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN - - Kanin Peanviriyakulkit
显示剩余3条评论
2个回答

11
您可以使用以下方法杀死它:
sudo fuser -k 80/tcp

然后尝试再次启动nginx:

service nginx start

0

对我来说,是因为我安装了lighttpd并且它正在运行。卸载它后问题消失了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接