Xymon Mailing List Archive search

Xymon and Lighttpd 500 Internal Error

list Guy
Thu, 5 Sep 2019 09:08:54 -0400
Message-Id: <user-172a85f5bbd4@xymon.invalid>

Brian,

Thank you, this resolved the issue. I did a fresh install of lighttpd,
and after adjusting some file-system permissions, your config works
great.

Thanks again,

Guy

On Wed, Sep 4, 2019 at 10:23 PM Brian Scott <user-b09d5329b577@xymon.invalid> wrote:
On 4/9/19 9:15 pm, Guy wrote:
On Thu, Aug 29, 2019 at 2:15 PM Guy <user-6f21ad656c65@xymon.invalid> wrote:
Hello,

The Xymon index page is loading; however, when I attempt to drill down
into an individual service check (invoking svcstatus.sh), lighttpd
returns a 500 internal server error.
Someone from the Lighttpd support forums responded with the following:
"It appears that the CGI is not returning any output, which is an
invalid CGI/1.1 response. lighttpd is receiving POLLHUP on the pipe
and cleaning up the CGI. Perhaps you forgot to flush output in the
script?"

Here's the thread:
https://redmine.lighttpd.net/boards/2/topics/8703?r=8705#message-8705

If I create /var/www/html/hello-world.sh and run it, it works as expected.
OS: Devuan Ascii 2.0
Kernel: Linux pihole 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u5
(2019-08-11) x86_64 GNU/Linux
Lighttpd: Version: 1.4.45-1
Xymon: Version: 4.3.28-2

Xymon and lighttpd were both installed from the official Devuan repos
using apt-get.

Here's my lighttpd config: https://clbin.com/F2LzF
Here's an strace: https://clbin.com/EuesM

Thanks,

Guy
Hi,

The .sh files aren't actually shell scripts any more, they are compiled
programs. Try getting rid of the cgi.assign clause for .sh completely.

I've just had a look at an old lighttpd config that I used for xymon and
found this in my vhosts.d directory:
server.modules  += ( "mod_cgi",
        "mod_auth",
        "mod_alias"
)

alias.url += (
        "/xymon-cgi/" => "/usr/local/xymon/cgi-bin/",
        "/xymon-seccgi/" => "/usr/local/xymon/cgi-secure/",
        "/xymon/" => "/usr/local/xymon/server/www/",
        "/xymon" => "/usr/local/xymon/server/www/"
)

$HTTP["url"] =~ "^/xymon-cgi/|^/xymon-seccgi/" {
        dir-listing.activate = "disable"
        cgi.assign = ( "" => "" )
}

auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/usr/local/xymon/server/etc/xymonpasswd"

auth.require = ( "/xymon-seccgi/" => (
        "method"  => "basic",
        "realm"   => "Xymon Administration",
        "require" => "user=admin"
        )
)
There is no mention of '.sh' mapping anywhere. While I'm a little hazy
about all of this, I suspect that the line 'cgi.assign = ( "" => "" )'
for the cgi directories is where the magic happens.


Cheers,


Brian Scott