【问题标题】:how to get the number of apache children free within php如何在 php 中免费获取 apache 孩子的数量
【发布时间】:2008-09-15 23:06:45
【问题描述】:

在 php 中,如何获取当前可用的 apache 子节点的数量
(apache 记分板中的status = SERVER_READY)?

我真的希望有一种简单的方法可以在我缺少的 php 中执行此操作。

【问题讨论】:

    标签: php apache


    【解决方案1】:

    您可以执行ps aux | grep httpdps aux | grep apache 的shell 命令并计算输出中的行数。

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

    我不确定状态列中的哪个状态表明它已准备好接受连接,但您可以对其进行过滤以获得就绪进程的计数。

    【讨论】:

    • OP 想要 Apache 工作线程,而不是当前运行的 Apache 进程数。
    • @SinusMackowaty OP 可能在 13 年前解决了它或转向另一个解决方案。
    • 当然,但是这些年来其他人仍然在这个页面上磕磕绊绊,并且可能会对这个答案如何适合这个问题感到惊讶。
    【解决方案2】:

    如果您有权访问 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;
      }
    }
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多