Nagios Directory Index Forbidden by Options Directive
After installing Nagios on a Raspberry Pi 2 Model B by following these installation instructions, I ran into an irritating problem. When trying to connect, I got the authentication dialog, but after that, I got an access error in my browser.
Directory index forbidden by Options directive: /usr/local/nagios/share
I searched around on Google but couldn’t find a solution. But after a lot of fiddling with Apache2, I found a solution. There’s a problem with the standard installation of the file in /etc/apache2/conf.d/nagios.conf created by make install-webconf
To make my search for the problem more manageable, I disabled authentication in /etc/apache2/conf.d/nagios.conf so one source of potential problems were eliminated. I just commented out the Auth lines. Then when I accessed http://localhost/nagios/index.php I got the error:[error] [client 10.200.2.115] script '/usr/local/nagios/shareindex.php' not found or unable to stat
Aha! Something is missing in the name shareindex.php. It should only be index.php. In the automatically configured nagios.conf file that the make install-webconf command creates, the Alias directive for Apache2 was missing a simple “/” at the end. So all you have to do to fix the problem is to add a trailing / to the end of the path set up by the Alias.
Here’s the original Alias directive in nagios.conf
Alias /nagios/ "/usr/local/nagios/share"
All you have to do is to change it to:
Alias /nagios/ "/usr/local/nagios/share/"
Sometimes small errors can create annoying problems. There’s a lot of (wrong) answers when doing a Google search, so hopefully, this will rank enough to help someone that has this annoying, but easily solved problem, they’ll find this.
Here’s the fixed /etc/apache2/conf.d/nagios.conf for posterity.
SAMPLE CONFIG SNIPPETS FOR APACHE WEB SERVER
#
This file contains examples of entries that need
to be incorporated into your Apache web server
configuration file. Customize the paths, etc. as
needed to fit your system.
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<directory "/usr/local/nagios/sbin">
SSLRequireSSL
Options +ExecCGI
AllowOverride None
Order allow,deny
Allow from all
Order deny,allow
Deny from all
Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
Alias /nagios/ "/usr/local/nagios/share/"
<directory "/usr/local/nagios/share">
SSLRequireSSL
Options None
DirectoryIndex index.php
AllowOverride None
Order allow,deny
Allow from all
Order deny,allow
Deny from all
Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
