我有一个 VPS,内存 1GB,运行 CentOS 5.4
它还可以运行 plesk,并且大多数情况下许多 wordpress 网站都可以毫无问题地运行。
最近,Apache 似乎时常崩溃。如果您访问 www.mysite.com,它似乎会超时。
我尝试重新启动 apache 并出现以下错误。
Stopping httpd: [FAILED]
Starting httpd: (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]
现在我 100% 确定除了 apache 之外,端口 80 上没有其他服务在运行。但 apache 似乎没有响应停止命令。它几乎就像被困在了边缘地带!
最后我发现我可以通过运行来手动强制 apache 停止
killall -9 httpd
然后重启命令就起作用了。
我的问题是:
1.) 什么原因会导致此类情况发生?据我所知,服务器没有收到任何重大流量。2.) 如果发生这种情况而我不在场手动执行该命令,我该如何在服务器上执行该操作以自动执行上述命令。
谢谢,
埃德
答案1
我在运行一些插件时遇到了类似的问题,在我诊断出哪个插件导致了该问题之前,我cron
每小时都会终止并重新启动 apache 和 mysql。
答案2
答案3
我会在所有 Apache 配置文件中查找Listen
指令,以验证您是否只有一个端口 80 上的监听。在 CentOS 6 中,ssl.conf 中有一个指令,如果您将另一个 http.conf 中的指令复制到 CentOS 6 框中,如果您不小心,您也会在 443 上遇到这个问题。