gpt4 book ai didi

apache - 如何配置 Munin-2.0.x 以在 Fedora 上使用 CGI(仅)生成内容?

转载 作者:行者123 更新时间:2023-12-04 12:48:35 25 4
gpt4 key购买 nike

我有一个 400 多个节点的 munin-1.4.x 安装,我想升级到 munin-2.x,以利用 munin 主服务器上基于 CGI 的内容生成(html 和图形)。我已经通过了官方 dox ( http://munin-monitoring.org/wiki/CgiHowto2 ),但它根本不起作用。它仅涵盖 VirtualHost ( http://munin.example.com ),这不是我的设置,但我尝试将其用作起点。

具体来说,我想要&需要http://example.com/munin是动态生成列出所有节点的 html 内容的基本 URL,链接到各个节点页面(然后在单击时动态生成/更新)。附加的问题是我在 Fedora(16) 上执行此操作,并且我发现的绝大多数 howto 都假设 Debian/Ubuntu(或假设通过 cron 生成非 cgi 静态内容)。

官方 Fedora munin 软件包安装以下内容:

  • munin 基本目录是/var/www/html/munin
  • munin 静态内容目录是/var/www/html/munin/static
  • munin cgi 脚本(munin-cg-graph 和 munin-cg-html)位于/var/www/html/munin/cgi

  • 到目前为止我所做的:
    * 在/etc/munin/munin.conf 中设置“html_strategy cgi”和“cgiurl_graph/munin/cgi/munin-cgi-html”
    * 将以下内容添加到/etc/httpd/conf/httpd.conf:
    # Rewrites
    RewriteEngine On
    Alias /static /var/www/html/munin/static
    Alias /munin /var/www/html/munin
    # HTML
    RewriteCond %{REQUEST_URI} !^/static
    RewriteCond %{REQUEST_URI} .html$ [or]
    RewriteCond %{REQUEST_URI} =/
    RewriteRule ^/(.*) /var/www/html/munin/cgi/munin-cgi-html/$1 [L]
    # Images
    # - remove path to munin-cgi-graph, if present
    RewriteRule ^/munin/cgi/munin-cgi-graph/(.*) /$1
    RewriteCond %{REQUEST_URI} !^/static
    RewriteCond %{REQUEST_URI} .png$
    RewriteRule ^/(.*) /var/www/html/munin/cgi/munin-cgi-graph/$1 [L]
    ScriptAlias /munin/cgi/munin-cgi-graph /var/www/html/munin/cgi/munin-cgi-graph
    <Location /munin/cgi/munin-cgi-graph>
    Options +ExecCGI FollowSymLinks
    <IfModule mod_fcgid.c>
    SetHandler fcgi-script
    </IfModule>
    <IfModule !mod_fcgid.c>
    SetHandler cgi-script
    </IfModule>
    </Location>
    ScriptAlias /munin/cgi/munin-cgi-html /var/www/html/munin/cgi/munin-cgi-html
    <Location /munin/cgi/munin-cgi-html>
    Options +ExecCGI FollowSymLinks
    <IfModule mod_fcgid.c>
    SetHandler fcgi-script
    </IfModule>
    <IfModule !mod_fcgid.c>
    SetHandler cgi-script
    </IfModule>
    </Location>

    但是,在完成所有这些(并重新启动 apache)之后,当我转到 http://example.com/munin 时,我收到 404 错误,在 apache 错误日志中我看到:
    File does not exist: /var/www/html/munin/cgi/munin-cgi-html/munin/index.html

    我希望我只是遗漏了一些明显的东西,但现在我完全不知道还有什么可能需要调整才能使这项工作发挥作用。谢谢。

    最佳答案

    问题是,如果您在基于“位置”的设置(而不是在 VirtualHost”中)使用配置,则 RewriteRule 的标志是错误的。

    根据 mod_rewrite文档:

     L  Stop the rewriting process immediately and don't apply any more rules.

    但是,在您的情况下,您希望传递/munin/cgi/munin-cgi-html 以便实际触发 ScriptAlias。因此:
     PT Forces the resulting URI to be passed back to the URL mapping engine for
    processing of other URI-to-filename translators, such as Alias or Redirect

    如果您将规则更改为阅读
    RewriteRule ^/(.*)  /munin/cgi/munin-cgi-html/$1 [PT]  
    ....
    RewriteRule ^/(.*) /munin/cgi/munin-cgi-graph/$1 [PT]

    请注意相对路径,否则 ScriptAlias 不起作用。

    关于apache - 如何配置 Munin-2.0.x 以在 Fedora 上使用 CGI(仅)生成内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020328/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com