我需要找到一种在给定时刻获取所有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)有没有人尝试过其他工具/模块?
提前致谢。
答案 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”,它就可以了。