启动apache失败(无法绑定到地址0.0.0.0:80)

rfc*_*484 46 apache port netstat kill

更新:已经修复,似乎其中一个VirtualHosts配置文件在启用站点时出错.

我有Ubuntu 11.10

当我运行命令启动apache2时:

sudo /etc/init.d/apache2 start
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

启动Web服务器apache2
apache2:无法可靠地确定服务器的完全限定域名,使用127.0.1.1 for ServerName(98)已在使用的地址:make_sock:无法绑定到地址0.0.0.0:80没有可用的侦听套接字,关闭无法打开日志操作'开始'失败.

我运行此命令以获取使用端口80的进程:

sudo netstat -ltnp | grep ':80'
Run Code Online (Sandbox Code Playgroud)

返回此输出:

tcp6       0      0 :::80                   :::*                    LISTEN      1176/
Run Code Online (Sandbox Code Playgroud)

要知道我运行此命令的进程:

ps -wlp1176
Run Code Online (Sandbox Code Playgroud)

返回:

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
5 D    33  1176     1  0  80   0 -     0 exit   ?        00:00:00 apache2
Run Code Online (Sandbox Code Playgroud)

但如果我试图杀死这个过程:

sudo kill -9 1176
Run Code Online (Sandbox Code Playgroud)

它不会杀死它,如果我再次运行netstat命令仍然显示监听和apache启动失败.

有什么建议?

小智 111

为我运行此命令工作:

fuser -k -n tcp 80
Run Code Online (Sandbox Code Playgroud)

  • 这个答案需要解释为什么它真正有用。 (2认同)

Ben*_*ier 17

它可能是使用端口80的skype或nginx.

尝试关闭Skype或运行: sudo /etc/init.d/nginx stop


小智 5

我有同样的错误,只想确认运行

    sudo netstat -ltnp | grep ':80'
Run Code Online (Sandbox Code Playgroud)

帮助我指出,Hiawatha Web服务器妨碍了Apache2。

删除Hiawatha可解决此问题(sudo dpkg --purge hiawatha)。Ubuntu 12.04.2服务器。


小智 5

我有同样的问题

对我来说,apache 已经在运行,但运行方式错误。

杀死进程不起作用,因为守护进程不断重新实例化它。

apachectl stop   
Run Code Online (Sandbox Code Playgroud)

解决了这个问题。


Kri*_*rya 5

使用任一

sudo killall httpd
Run Code Online (Sandbox Code Playgroud)

或者

sudo killall apache2
Run Code Online (Sandbox Code Playgroud)

检查是否有人使用80端口

sudo netstat -tulpn| grep :80
Run Code Online (Sandbox Code Playgroud)

重启

sudo service httpd start
Run Code Online (Sandbox Code Playgroud)

然后重新启动服务器。我花了一整天才明白这个问题

在此输入图像描述