6

我正在从 Apache 1.3 迁移到 Apache 2.063,并且无法让Apache::VMonitor正常工作。

我尝试了这样的设置,类似于我在旧 Apache 中的设置:

<Perl>
  use Apache::VMonitor();
  $Apache::VMonitor::Config{BLINKING} = 1;
  $Apache::VMonitor::Config{refresh}  = 0;
  $Apache::VMonitor::Config{verbose}  = 1;
  $Apache::VMonitor::Config{system}   = 1;
  $Apache::VMonitor::Config{apache}   = 1;
  $Apache::VMonitor::Config{procs}    = 1;
  $Apache::VMonitor::Config{mount}    = 1;
  $Apache::VMonitor::Config{fs_usage} = 1;
  $Apache::VMonitor::Config{apache_sort_by}  = 'vsize';
  $Apache::VMonitor::PROC_REGEX = join "\|", qw(.*)
</Perl>

<Location /vmonitor>
  SetHandler perl-script
  PerlHandler Apache::VMonitor
  Order deny,allow
  Deny from all
  Allow from 127.0.0.1
  Allow from X.X.X.X ## really a valid IP
</Location>

当我尝试启动服务器时,出现此错误:

ap_scoreboard_image 不存在于...

我在 Apache::VMonitor 文档中发现了一条注释,上面写着:

注意 对于 2.0.53 之后的 Apache 版本(在 2.0.54、2.0.55 和 2.0.58 上验证),由于 Apache 初始化记分牌对象。

问题是它没有说明何时可以在更高版本的 Apache 中初始化记分牌对象。我试图省略“使用”语句并得到这个错误:

恐慌:全局销毁期间的 del_backref。

*错误代码 255

有谁知道如何让它工作?我并没有坚持使用 Apache::VMonitor,如果有人可以建议另一种方法来解析和显示来自 Apache 记分牌的数据,我愿意接受建议。

4

1 回答 1

5

我已将 V2.07 推送到 CPAN,它应该可以解决问题(如果您不需要 GTop 提供的信息或在 Windows 上运行,还删除了对 GTop 的依赖)。

使用以前的版本(V2.06),您应该能够在您的脚本/应用程序中初始化它。基本上在启动阶段之后的任何地方,如果我没记错的话,在创建子线程/进程之前没有记分牌。

如果您需要,源代码在 github ( http://github.com/mjharwood/Apache--VMonitor-2.0 ) 上。

于 2012-05-28T15:51:27.680 回答