我在使用 2000 个虚拟主机重新启动 Apache 时遇到了一些问题。
我在 CentOS 5.8 64 位上使用 Apache 2.2.22 + PHP 5.4.6。
当我尝试重新启动时,它显示:
/etc/init.d/httpd restart
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]
当我这样做killall -9 httpd
时,一段时间后它又发生了:/
在我看来,Apache 似乎没有开始运行,至少没有在 init 脚本启动它的 PID 下运行。检查(或在此处提供)“ps auxwww”的输出。
我最强烈的直觉告诉你,你的 apache root 进程快死了,让孩子们活着并在端口 80 上侦听。如果是这样,请查看你的 apache 错误日志和系统日志,看看是什么杀死了 root 进程。
其他可能性:您可能有其他东西在 init 脚本之外手动启动 apache,或者其他东西可能正在侦听端口 80(但这不能解释为什么 killall -9 httpd 有效)。
是包裹问题。我从 webtactic repo 得到了 httpd。更改为 Lxcenter 的那个并且工作得很好;)