stdout from scripts goes to apache logs

"Steven Haigh via modperl" <[email protected]> Mon, 13 May 2024 16:53:32 +1000
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
Hi all,

I'm playing around with mod_perl on apache on docker - and now I've 
finally got all the module issues sorted, I'm trying to figure out why 
when using mod_perl, the output of scripts ends up in the apache logs.

The following configuration works, and the output of shelled scripts 
works as expected:

<Location />
     DirectoryIndex index.pl index.html
     AddHandler cgi-script .pl
     Options +Indexes +FollowSymLinks +ExecCGI
     Require all granted
</Location>

If I change this to use mod_perl, all output from scripts run in web 
pages ends up in the apache log:

<Location />
     DirectoryIndex index.pl index.html
     AddHandler perl-script .pl
     Options +Indexes +FollowSymLinks +ExecCGI
     Require all granted
</Location>

The perl code I'm using in the web page is as follows:
my $cmd = "/bin/stdbuf";
my @args = qw@ -o1 -e1 /usr/bin/speedtest-cli@;

print '<pre class="alert">';
my $pid = open3(0, \*READER, 0, $cmd, @args);
while ( my $output = <READER> ) {
     print $output;
}
print "Speed test complete.</pre>";
waitpid $pid,0;

Does anyone have any clues as to why STDOUT would end up in the apache 
log and not in the web page being served when using perl-script as the 
handler?

-- 
Steven Haigh

📧 [email protected]
💻 https://crc.id.au