如何在特定时刻获取Apache的运行请求?

时间:2011-01-15 23:03:08

标签: php apache apache2 html-parsing

我需要找到一种在给定时刻获取所有Apache运行请求的方法。我需要列出vhost,cpu,请求ip地址和其他一些信息。 这些信息将由PHP脚本使用。

我安装了 mod_status ,它拥有我需要的所有信息。所以我尝试使用file_get_contents来获取报告,从服务器生成请求(http:// localhost / server-status)。它工作得很好。然后我尝试解析报告,使用simplexml_load_string将其转换为XML。问题是mod_status输出的HTML格式不正确。

这是我需要解析的表中的HTL:

<table border="0"><tr><th>Srv</th><th>PID</th><th>Acc</th><th>M</th><th>CPU
</th><th>SS</th><th>Req</th><th>Conn</th><th>Child</th><th>Slot</th><th>Client</th><th>VHost</th><th>Request</th></tr>

<tr><td><b>0-1</b></td><td>-</td><td>0/0/70</td><td>.
</td><td>0.00</td><td>107</td><td>0</td><td>0.0</td><td>0.00</td><td>0.34
</td><td>127.0.0.1</td><td nowrap>zsce</td><td nowrap>OPTIONS * HTTP/1.0</td></tr>

<tr><td><b>1-1</b></td><td>-</td><td>0/0/55</td><td>.
</td><td>0.04</td><td>108</td><td>0</td><td>0.0</td><td>0.00</td><td>0.70
</td><td>127.0.0.1</td><td nowrap>zsce</td><td nowrap>OPTIONS * HTTP/1.0</td></tr>

</table>

我确定有人之前尝试过这样的事情。 1)是否有其他方式来访问我需要的信息? 2)有没有人尝试过其他工具/模块?

提前致谢。

2 个答案:

答案 0 :(得分:2)

我无法看到HTML的问题。怎么了?

PHP没有自由的HTML解析器;像Python的BeautifulSoup或Ruby的Nokogiri?

另外,请记住mod_status具有“自动”模式,用于生成机器可读输出。

http://www.apache.org/server-status?auto http://httpd.apache.org/docs/2.2/mod/mod_status.html#machinereadable

答案 1 :(得分:0)

我刚刚发现,如果我在解析它之前从HTML中删除“nowrap”,它就可以了。