2012-03-18 167 views
2

我试图使用COMAND重新启动我的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

通常一个“不能结合到地址”错误意味着另一过程从该端口上启动绑定到端口80防止了Apache。如果您使用的是缓存服务器或其他也使用端口80的Web服务器,则会发生这种情况。如果是这种情况,请停止此备用过程并尝试重新启动Apache。

如果你不知道什么是绑定到端口80,你可以用netstat来了解一下什么是如

netstat -lnp 

不过你的情况看来,你所得到的错误,是因为尝试重启即重启命令尝试先停止服务器,然后在再次启动它开始之前Apache不停止单一命令。试试:

service httpd stop 
service httpd start 

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

+0

“服务apache停止”我得到“apache:无法识别的服务”,为“服务httpd停止”我只是得到“停止httpd:[失败]”。 – tomermes 2012-03-18 10:48:40

+2

你正在使用什么操作系统?你以什么身份登录?它可能是一个权限问题?你也可以更积极地停止Apache,例如找出Apache的父进程ID并使用kill来停止它,然后用'service httpd start'启动Apache。要获得Apache运行'ps -ef |的进程ID grep httpd',然后使用'kill process_id'(其中process_id是父级httpd进程ID) – 2012-03-18 10:53:49

+0

kill命令起作用。谢谢。 – tomermes 2012-03-18 11:09:34

1

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

[[email protected] ~]$ 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] 
[[email protected] ~]$ sudo service httpd start 
Starting httpd:           [ OK ] 
0

我的一台服务器一直都在这样做。下面是一些更详细:

sudo netstat -ltnp | grep ':80' 

将返回:

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

然后用####(进程ID)号返回杀掉正在使用端口80,有问题的进程,使Apache可以绑定它:

sudo kill -9 ####