服务httpd重新启动/(98)地址已在使用中


11

我突然无法在CentOS 6.8 Web服务器上重新启动apache:

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:7080
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:7080
no listening sockets available, shutting down
Unable to open logs
                                                           [FAILED]

我尝试了很多在线阅读的内容,包括删除锁定文件。

我决定尝试重新启动服务器。重新启动后,尝试加载任何托管网站将导致“ 502 Bad Gateway”。

# service httpd status
httpd is stopped

# service httpd start
Starting httpd:                                            [  OK  ]

# service httpd status
httpd dead but subsys locked

尽管状态为“已死”,但我现在可以加载网站!

有时服务httpd重新启动有效...

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

但是有时它会导致上面的第一个错误。在这种情况下,我可以使用以下方法修复它:

# killall -9 httpd
# service httpd start

所以我可以解决它,但是我真的对正在发生的事情感到好奇,想知道我是否应该关注。


您的文件系统是否已满?并且:当错误出现时,运行netstat -tulpen并寻找在7080端口上侦听的内容。您仅运行apache,对吗?7080端口是不是一个错误?
Lenniey '16

tcp 0 0 :::7080 :::* LISTEN 0 5626801 3829/httpd
stevland '16

Answers:


12

您可能在某个地方的配置中两次在该端口上定义了侦听器。

听*:7080

如果您运行Apache config测试,它将说配置正确,直到您真正重新启动该服务为止,它将失败,并显示与您所看到的类似的错误。

还要确认您的日志记录位置存在并且可写并且有写空间,最后该消息是可疑的。


9

SSH到服务器并运行以下命令:

setenforce 0

这将禁用selinux,直到下次重启

然后尝试重新加载Apache

service httpd restart

如果可以正常工作,则selinux会打开。

要永久禁用此链接,请执行以下操作:

https://kb.plesk.com/zh/115626


不幸的是,尽管我喜欢简单的答案,但是它没有用。:(
stevland '16

您可以运行这些命令来查看使用哪些端口的端口。请将输出添加到问题或pastebin。“ netstat -ano | grep 80”“ netstat -ano | grep 7080”“ cat / etc / services | grep -w 80”“ cat / etc / services | grep -w 7080”“ nmap localhost | grep 80”“ nmap localhost | grep 80“” nmap localhost“
Anthony Fornito
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.