Well, it seems both apache and bash literally say they did not find an
executable there; it is not about NUT configs. Is the file present? (is
"spivey" same as "pi2" in "screenshots" posted?) Does it have the exec bit
set? Are all directories at least "executable" by apache user?

Jim


On Thu, Dec 21, 2023, 13:11 Tim Reimers KA4LFP via Nut-upsuser <
nut-upsuser@alioth-lists.debian.net> wrote:

>
> Hi everyone --
>
> I'm having a problem with the CGI scripts for NUT.
>
> First, a summary:
> - I have a RasPI  (hereafter referred to as Pi1)  running Bullseye in
> which this all WORKS FINE -- the upsd/upsc/ monitor services, etc
> - I have a SECOND RasPI (hereafter referred to as Pi2) running Bullseye in
> which ONLY the CGI scripts do not work.
> All other (upsc/upsd/systemctl) show normal status and work to retrieve
> data from the single UPS attached to each Pi.
>
> Discussion below is in regard to "PI2", in which CGI scripts don't work.
> On "Pi1" everything works fine.
>
> I have compared many files/permissions/config files, and cannot find a
> difference between the two Pi.
>
> On both of them, running "upsc <ups>@localhost" works fine, and produces
> output from the UPS.
> So at a basic level, the UPS is connected to the USB port, the driver is
> working, and the upsd monitoring service is OK.
>
>
> The essential problem
> The CGI script returns "file not found"
> If I execute it from a browser via Apache,
> I simply get a 500 Internal Server Error.
>
> On another site, I discovered that it's possible to simply execute a CGI
> script directly, if it's a compiled executable.
>
> Here's what happens at the CLI by executing the file.
> root@Pi2 :~# /var/www/cgi-bin/nut/upsstats.cgi
> -bash: /var/www/cgi-bin/nut/upsstats.cgi: No such file or directory
>
> That's different from the suggested scenarios for running upsstats.cgi
> from the CLI, which were issues
> with host authentication or "spits a bunch of HTML at you", which would be
> fine.
>
> On "Pi1", the fully working one - that's exactly what happens  - calling
> "upsstats.cgi" from the CLI
> results in it simply spitting out HTML with the configured UPS detailed
> out.
> Running the CGI from a browser > Apache2 on the Pi works exactly as
> expected
>
> What I lack an understanding of is which files in /etc/nut
> these CGI scripts access, and what permissions are needed.
> Or if there are other files in other directories that the CGI scripts need.
> That error, cryptically gives me the impression that the CGI script cannot
> access some file it needs
> I've looked at
> /etc/nut/hosts.conf
> /etc/nut/upsstats.html
> /etc/nut/upssstats-single.html
> /etc/nut/upsset.conf
>
> All those files -- which I believe to be the required ones for CGI, appear
> to be identical on Pi2 as compared to Pi1
>
> Does anyone have any idea which files/permissions that the CGI may require
> other than the above?
> I'm not sure if something in /usr/lib /var/wherever, etc are also
> required?
>
> Thanks Tim
>
> Some details for those who will want to compare versions, etc.
>
> The apache logfile
> [Tue Dec 19 15:20:42.088991 2023] [cgi:error] [pid 3293] [client
> 72.250.240.54:31043] AH01215: (2)No such file or directory: exec of
> '/var/www/cgi-bin/nut/upsstats.cgi' failed:
> /var/www/cgi-bin/nut/upsstats.cgi
> [Tue Dec 19 15:20:42.092452 2023] [cgi:error] [pid 3293] [client
> 72.250.240.54:31043] End of script output before headers: upsstats.cgi
> [Tue Dec 19 15:20:42.498512 2023] [cgi:error] [pid 3294] [client
> 72.250.240.54:40731] AH01215: (2)No such file or directory: exec of
> '/var/www/cgi-bin/nut/upsstats.cgi' failed:
> /var/www/cgi-bin/nut/upsstats.cgi
> [Tue Dec 19 15:20:42.502123 2023] [cgi:error] [pid 3294] [client
> 72.250.240.54:40731] End of script output before headers: upsstats.cgi
>
> Permissions on /etc/nut
> root@spivey:~#  ls -la /etc/nut
> total 64
> drwxr-xr-x 1 root nut   292 Dec 18 20:02 .
> drwxr-xr-x 1 root root 3882 Dec 19 06:14 ..
> -rwxr-x--- 1 nut  nut   675 Dec  6 20:40 etcnutfileperms.txt
> -rwxr-x--- 1 root root 1148 Dec 18 20:02 hosts.conf
> -rwxr-x--- 1 nut  nut  1543 Dec  6 20:40 nut.conf
> -rwxr-x--- 1 nut  root 1137 Dec 15 21:12 old-hosts.conf
> -rwxr-x--- 1 nut  nut  6170 Dec 18 20:01 ups.conf
> -rwxr-x--- 1 nut  nut  4631 Dec  6 20:40 upsd.conf
> -rwxr-x--- 1 nut  nut  2185 Dec 18 19:54 upsd.users
> -rwxr-x--- 1 root root 1263 Dec 18 20:01 upsmon.conf
> -rwxr-x--- 1 nut  nut  5634 Dec  6 20:40 upssched.conf
> -rwxr-x--- 1 nut  nut  1415 Dec 15 21:36 upsset.conf
> -rwxr-x--- 1 nut  root 3603 Dec  6 20:40 upsstats.html
> -rwxr-x--- 1 nut  root 6446 Dec  6 20:40 upsstats-single.html
> root@spivey:~#  ls -la /etc/ | grep nut
> drwxr-xr-x 1 root nut      292 Dec 18 20:02 nut
>
>
> root@Pi2:~# upsc tripplite@localhost
> Init SSL without certificate database
> battery.charge: 100
> .
> .
>
>
> root@Pi2:~# /usr/sbin/upsd -DD -a tripplite@localhost
> Network UPS Tools upsd 2.7.4
>
>
> root@Pi2:~#
> root@spivey:~# file /var/www/cgi-bin/nut/upsstats.cgi
> /var/www/cgi-bin/nut/upsstats.cgi: ELF 32-bit LSB executable, ARM, EABI5
> version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3,
> BuildID[sha1]=52f4d9e65d096388e4b3cb3df2673bf59bbdfa70, for GNU/Linux
> 3.2.0, stripped
> root@Pi2:~#
> root@Pi1:~#
>
>
>
>
>
> ####
> Tim, KA4LFP####
>
> ####
> Morse code, the original digital mode
> Real radios glow in the dark.
> SWAN rule number 1: Life is too short to have a puny signal. © K0MHP
> SWAN rule number 2: No menu required. © K0MHP
>
> ##
> _______________________________________________
> Nut-upsuser mailing list
> Nut-upsuser@alioth-lists.debian.net
> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
>
_______________________________________________
Nut-upsuser mailing list
Nut-upsuser@alioth-lists.debian.net
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser

Reply via email to