我正在尝试使用以下命令重启我的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]
可能是什么问题?
答案 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 ####