如何在php中免费获取apache儿童数量

时间:2020-03-05 18:54:46  来源:igfitidea点击:

在php中,如何获取当前可用的apache子代数
(Apache计分板上的状态= SERVER_READY)?

我真的希望有一种简单的方法可以在php中做到这一点,而我却很想念。

解决方案

回答

我们可以执行ps aux |的shell命令。 grep httpd或者ps aux | grep apache并计算输出中的行数。

exec('ps aux | grep apache', $output);
$processes = count($output);

我不确定"状态"列中的哪个状态表示已准备好接受连接,但是我们可以对此进行过滤以获取准备就绪的进程数。

回答

如果我们有权访问Apache服务器状态页面,请尝试使用?auto标志:

http:// yourserver / server-status?auto

输出是状态页面的机器可读版本。我相信我们正在寻找" IdleWorkers"。这是一些简单的PHP5代码,可以入门。在现实生活中,如果服务器处于脱机状态,我们可能希望使用cURL或者套接字连接来发起超时。

<?php

$status = file('http://yourserver/server-status?auto');
foreach ($status as $line) {
  if (substr($line, 0, 10) == 'IdleWorkers') {
    $idle_workers = trim(substr($line, 12));
    print $idle_workers;
    break;
  }
}

?>