web-dev-qa-db-ja.com

FreeBSDのNagiosではApache403は禁止されています

_/usr/local/etc/Apache24/Includes_に次のconfファイルがあり、Nagios GUIにサインインしようとすると、403が禁止されます。これは、ApacheがNagiosデータにアクセスする際の権限の問題だと思いますが、これを解決する方法がわかりません。 wwwユーザーをnagiosグループに追加しましたが、ファイルは_/usr/local/www/nagios/cgi-bin/_にあり、nagiosグループで実行可能で読み取り可能です。 _httpd.conf_ファイルでcgi_modulesも有効にしています

_ScriptAlias /nagios/cgi-bin/ /usr/local/www/nagios/cgi-bin/

Alias /nagios /usr/local/www/nagios/
<Directory /usr/local/www/nagios>

   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
   AuthName "Nagios Access"
   AuthType Basic
   AuthUSerFile /usr/local/etc/nagios/htpasswd.users
   Require valid-user

</Directory>

<Directory /usr/local/www/nagios/cgi-bin>

   Options ExecCGI
   AllowOverride None
   Order allow,deny
   Allow from all
   AuthName "Nagios Access"
   AuthType Basic
   AuthUSerFile /usr/local/etc/nagios/htpasswd.users
   Require valid-user

</Directory>
_

この問題を解決するにはどうすればよいですか?

Nagiosバージョン:4.3.4

Apacheバージョン:24

FreeBSD 11

更新1:

Httpd.confファイルのディレクトリインデックス部分を変更して、index.phpを含めました

_<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>
_

そして、私は次のウェブページを見ます

_<?php
include_once(dirname(__FILE__).'/includes/utils.inc.php');
// Allow specifying main window URL for permalinks, etc.
$url = $cfg['cgi_base_url'].'/tac.cgi';

if ("yes" == "yes" && isset($_GET['corewindow'])) {

    // The default window url may have been overridden with a permalink...
    // Parse the URL and remove permalink option from base.
    $a = parse_url($_GET['corewindow']);

    // Build the base url.
    $url = htmlentities($a['path']).'?';
    $url = (isset($a['Host'])) ? $a['scheme'].'://'.$a['Host'].$url : '/'.$url;

    $query = isset($a['query']) ? $a['query'] : '';
    $pairs = explode('&', $query);
    foreach ($pairs as $pair) {
        $v = explode('=', $pair);
        if (is_array($v)) {
            $key = urlencode($v[0]);
            $val = urlencode(isset($v[1]) ? $v[1] : '');
            $url .= "&$key=$val";
        }
    }
    if (preg_match("/^http:\/\/|^https:\/\/|^\//", $url) != 1)
        $url = "main.php";
}

$this_year = '2017';
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

<html>
<head>
    <meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
<script LANGUAGE="javascript">
    var n = Math.round(Math.random() * 10000000000);
    document.write("<title>Nagios Core on " + window.location.hostname + "</title>");
    document.cookie = "NagFormId=" + n.toString(16);
</script>
    <link rel="shortcut icon" href="images/favicon.ico" type="image/ico">
</head>

<frameset cols="180,*" style="border: 0px;">
    <frame src="side.php" name="side" frameborder="0" style="">
    <frame src="<?php echo $url; ?>" name="main" frameborder="0" style="">

    <noframes>
        <!-- This page requires a web browser which supports frames. -->
        <h2>Nagios Core</h2>
        <p align="center">
            <a href="https://www.nagios.org/">www.nagios.org</a><br>
            Copyright &copy; 2010-<?php echo $this_year; ?> Nagios Core Development Team and Community Contributors.
            Copyright &copy; 1999-2010 Ethan Galstad<br>
        </p>
        <p>
            <i>Note: These pages require a browser which supports frames</i>
        </p>
    </noframes>
</frameset>

</html>
_

しかし、エラーCannot serve directory /usr/local/www/nagios/: No matching DirectoryIndex (index.html) found, and server-generated directory index forbidden by Options directiveは解消されていません。

2
pdna

したがって、ここではディレクトリインデックスが問題になる可能性があります。

<IfModule dir_module>
    DirectoryIndex index.php index.html index.htm AddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps
</IfModule>

完全なドキュメントはここにあります: https://support.nagios.com/kb/article.php?id=96#FreeBSD

0
pdna