如何检查Apache2挂起的位置?

时间:2012-03-12 06:38:57

标签: apache2

我的Apache2挂了。我无法得到任何回应。

我试图运行wget localhost

它就像这样挂起:

--2012-03-12 06:36:40--  http://localhost/
Resolving localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:80... connected.
HTTP request sent, awaiting response...

如何获取更多调试信息?

2 个答案:

答案 0 :(得分:3)

使用netstat -nt查看从127.0.0.1到端口80的连接。

您可以使用fuser -n tcp 80,127.0.0.1,<port-number>查找Apache进程的PID,该进程具有来自给定的127.0.0.1的端口80 TCP连接。

然后在该进程上执行strace -p <pid>以查看它在系统调用级别执行的操作。

如果你在单进程模式下重启Apache,你可以取出pid查找步骤(假设挂起仍然重现!)如果是这种情况我会在strace下运行该Apache并捕获跟踪。

基于此,我将决定下一步该做什么。它是挂在系统调用中,而不是挂在系统调用中,...哪个系统调用。最后的度假胜地将获得调试版本并gdb

Apache调试指南:http://httpd.apache.org/dev/debugging.html

答案 1 :(得分:2)

尝试tail -f /var/log/apache/error_log

error_log的路径可能会有所不同。要搜索它,请尝试find / -name error_log。如果您没有以root身份登录,那么您可能会看到一堆“权限被拒绝”。在这种情况下,您可以使用find / -name error_log 2>/dev/null隐藏错误消息,或尝试使用find /var/log/ -name error_log猜测位置。