apache重启失败

时间:2012-03-18 10:31:06

标签: apache

我正在尝试使用以下命令重启我的apache服务器:

service httpd restart

我收到以下错误:

Stopping httpd:                                            [FAILED]  
Starting httpd: [Sun Mar 18 12:28:14 2012] [warn] module proxy_ajp_module is already    loaded, skipping  
(98)Address already in use: make_sock: could not bind to address [::]:80  
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80  
no listening sockets available, shutting down  
Unable to open logs                                        [FAILED] 

可能是什么问题?

3 个答案:

答案 0 :(得分:3)

通常“无法绑定到地址”错误意味着另一个进程绑定到端口80,阻止Apache在该端口上启动。如果您使用的是缓存服务器或同时使用端口80的其他Web服务器,则会发生这种情况。如果是这种情况,请停止此备用进程并尝试重新启动Apache。

如果您不确定绑定到端口80的是什么,可以使用netstat来查找例如。

netstat -lnp

但是在你的情况下,你得到的错误似乎是因为Apache在重新启动尝试启动之前没有被停止,即restart命令尝试首先停止服务器,然后在单个命令中再次启动它。尝试:

service httpd stop
service httpd start 

如果你能弄清楚停止失败的原因,那么你也可以找出重启失败的原因。

答案 1 :(得分:1)

如果你得到Permission denied,请确保以sudo或root身份运行命令!

[dirt@stage ~]$ service httpd start
Starting httpd:
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address
0.0.0.0:80 no listening sockets available, shutting down

Unable to open logs                                        [FAILED]
[dirt@stage ~]$ sudo service httpd start
Starting httpd:                                            [  OK  ]

答案 2 :(得分:0)

我的一台服务器一直这样做。这里有一些更详细的信息:

sudo netstat -ltnp | grep ':80'

将返回:

tcp6 0 0 :::80 :::* LISTEN ####/apache2

然后使用返回的####(进程ID)号来终止使用端口80的违规进程,以便apache可以正确绑定它:

sudo kill -9 ####