Thread Funktionierendes Perl/CGI-Script läuft nicht mehr (40 answers)
Opened by MiLeREDE at 2021-08-03 17:20

MiLeREDE
 2021-08-03 17:20
#193469 #193469
User since
2021-08-03
31 Artikel
BenutzerIn
[default_avatar]
Hallo Community!

Ich habe ein kleines Perl/CGI-Script aus anderen Quellen auf meinen Bedarf angepasst. Das Script soll bei Aufruf einer URL einen als Parameter mitgegebenen Text in einen IRC-Chat senden.

Das hat auch prima funktioniert und ist auch einige Zeit fehlerfrei gelaufen.

Jetzt geht plötzlich gar nichts mehr?! Das Script arbeitet und leitet auf die Bestätigungsseite (die nur bei fehlerfreiem Ablauf) vorgesehen ist weiter.

Im error_log sehe ich:

"[Tue Aug 03 13:35:19.881797 2021] [cgid:error] [pid 16751:tid 139821192283904] [client ...] End of script output before headers: submitirc.cgi"

Dazu habe ich eine schöne Erklärung gefunden:

"Most of the time when this error appears, the PHP script is failing to process data and returning an empty result instead. This empty output from PHP due to an error that was encountered results in the "error reading data from FastCGI server" followed by "End of script ...".

This can be due to many reasons, e.g. .htaccess rewrites prohibiting access to a specific resource, RAM too low for image processing, image processor not found, other resources that are needed inaccessible due to false permissions, openbasedir preventing access to resources and more. Endless possibilities. Just one thing very likely: Error in the PHP routine that is doing something on your server."

Quelle:
https://talk.plesk.com/threads/fcgid-timeout-60-se...

Betrifft hier zwar PHP, stammt aber von plesk, was in meinem Fall zutrifft. Ich könnte mir vorstellen, dass auch hier von "error reading data from FastCGI server" stammt.

Dummerweise bin ich leider kein Experte auf diesem Gebiet und finde keinen Ansatz, der mich zielgerichtet zur Problemlösung führt.

Hier mein Script:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/perl

use strict;
use CGI;
use IO::Socket::INET;

# CONFIG OPTIONS:
my $irc_server="irc.somewhere.net";
my $server_port="6667";
my $nick=sprintf("MSG-%05d",rand(100000));
my $channel="chat";

my $s=IO::Socket::INET->new(
        PeerAddr=>$irc_server,
        PeerPort=>$server_port,
        Timeout=>1);

my $q = new CGI;
my $text = $q->param('Text');

# connected to server
($s)?(print ""):(print $q->redirect('https://example.net/test/err.html') and exit);

# sending nickname
$s->print("user $nick B C D\r\n");
$s->print("nick $nick\r\n");

# join to channel
$s->print("JOIN #$channel\r\n");

# submit message
$s->print("PRIVMSG #$channel :$text\r\n");

# quit from channel
$s->print("QUIT\n");

die (print $q->redirect('https://example.net/test/err.html')) unless $s;

while (<$s>) {
        chomp;
        # response to server if send us PING request
        $s->print("PONG :$1\r\n") && print STDERR "pong $1...\n" if /^PING :(.*?)/;
}

# disconnect from server
$s->print("DISCONNECT\r\n");
($s->close)?(print $q->redirect('https://example.net/test/ok.html')):(print $q->redirect('https://example.net/test/err.html'));


Kann mir vielleicht hier jemand helfen? Ich versuche das jetzt schon einige Zeit wieder hin zu bekommen. Die Stunden vergehen aber nix hilft.

Vielen Dank!

Michael

modedit Editiert von GwenDragon: formatted as Perl-Code
Last edited: 2021-08-03 17:32:22 +0200 (CEST)

View full thread Funktionierendes Perl/CGI-Script läuft nicht mehr