2012-04-30 79 views
6

我正在從Apache 1.3遷移到Apache 2.063,並且無法使Apache::VMonitor正常工作。我無法在Apache2中運行Apache :: VMonitor

我想這樣的設置,類似於我怎麼過的安裝在我的老阿帕奇:

<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 doesn't exist at ...

我在Apache :: VMonitor文檔中找到一條說明:

NOTE For Apache versions later than 2.0.53 (veriied on 2.0.54, 2.0.55, and 2.0.58), loading Apache::VMonitor in sections and/or PostConfigRequire files does not work due to a change in when Apache initialises the scoreboard object.

問題是它沒有說我何時可以在在更高版本的Apache中使用記分板對象。我想省略「使用」的聲明,並得到這個錯誤:

panic: del_backref during global destruction.

* Error code 255

沒有人有任何想法如何得到這個工作?我並沒有堅持使用Apache :: VMonitor,如果任何人都可以建議一種替代方法來解析和顯示來自Apache的記分板的數據,我願意接受這些建議。

+0

也許啓動一個等待記分牌上來的包裝並啓動VMonitor。 – stark

+0

確認[Apache :: Scoreboard](http://p3rl.org/Apache::Scoreboard)遭受了Bitrot攻擊,需要使用最新版本的httpd將其更新到最新版本。 – daxim

+0

這真的應該問[sf]而不是在這裏。如果它沒有開放的賞金(如果沒有開放的賞金),我會標記爲遷移 – Hasturkun

回答

5

我將V2.07推送到CPAN來解決問題(如果不需要它提供的信息,或者在Windows上運行,也可以解除對GTop的依賴關係)。

使用以前的版本(V2.06),您應該能夠在腳本/應用程序中初始化它。基本上在啓動階段之後的任何地方,如果我沒有記錯的話,直到創建子線程/進程時纔有記分板。

該源碼在github上(http://github.com/mjharwood/Apache--VMonitor-2.0)如果你想要它。