Generieren Sie HTML mit dem CGI.pm-Modul

432
Angel

Ich habe Apache2 auf dem Fedora-Server eingerichtet und möchte HTML mit Perl-Skript generieren. Dies ist mein Testskript, das ich mit Hilfe von perldoc erstellt habe:

#!/usr/bin/perl use strict; use warnings; use CGI;   my $cgi = CGI->new;  print $cgi->header,   $cgi->start_html('works'),  $cgi->h1('hello '),  $cgi->end_html;  

Es gibt "Internal Server Error" zurück, aber wenn ich es im Terminal mit laufe perl test.cgi, sieht es gut aus. Ich habe es in / cgi-bin dir abgelegt, andere Skripte funktionieren problemlos.

BEARBEITEN

Ich habe schon mit einzeiligen Aufgaben versucht system("date")und es gibt das Datum im Browser zurück. Auch die Berechtigungen für Fehler geprüft.

Es funktioniert beim Generieren mit dem folgenden Code.

print "Content-type:text/html\r\n\r\n"; print '<html>'; print '<head>'; print '<title>Some Title</title>'; print '</head>'; print '<body>'; print '<h2>Hello </h2>'; print '</body>'; print '</html>'; 

Fehlerprotokoll :

[Wed Aug 01 20:16:19.108179 2018] [cgid:error] [pid 3781:tid 140519697967360] (8)Exec format error: AH01241: exec of '/var/www/cgi-bin/test.cgi' failed [Wed Aug 01 20:16:19.108863 2018] [cgid:error] [pid 1112:tid 140518772139776] [client 192.168.0.105:46870] End of script output before headers: test.cgi 

LÖSUNG Ich denke, eines der Probleme war wahrscheinlich HTML :: Entities installiert, dann hat es funktioniert

0
Wie sicher sind Sie, dass die Fehlermeldung, die Sie sehen, von diesem Modul kommt? „Serverfehler“ klingt eher nach etwas, das von Apache stammen würde. Können Sie ein einfaches Shell-Skript erstellen, das dieselbe triviale "Hallo Welt" -Aufgabe wie Ihr Perl-Skript ausführt, es eintauschen und sehen, was passiert? Möglicherweise liegt ein Problem beim Aufruf dieses Perl-Skripts vor. Bitte antworten Sie nicht in Kommentaren. Bearbeiten Sie Ihre Frage, um sie klarer und vollständiger zu machen. Scott vor 5 Jahren 0
Welcher Fehler wird im Apache-Fehlerprotokoll ausgegeben? Toto vor 5 Jahren 1
Sie können versuchen, "$ | ++" kurz vor dem ersten "Druck" hinzuzufügen. Siehe: http://perldoc.perl.org/perlfaq5.html#How-do-I-flush/unbuffer-an-output-filehandle%3F-Why-must-I-do-this%3F Toto vor 5 Jahren 0
Warum ist das angehalten? Es scheint eher ein Problem mit der Webserver-Konfiguration zu sein als mit einem Softwarefehler. Sind keine Fragen zur Konfiguration erlaubt? shawnhcorey vor 5 Jahren 0
@shawnhcorey [die ursprüngliche Überarbeitung dieser Frage] (https://superuser.com/revisions/1345213/1) gab keinen Hinweis darauf, dass es sich um ein Konfigurationsproblem handeln könnte und wie ein problematischer Code aussah. Nach dem Bearbeiten [durch Review] (https://superuser.com/review/reopen/777602) wurde es anscheinend nicht genug verbessert, bevor es die Review verlassen hat. Es gab mehrere Editierungen und solche, die zu "Konfigurationsproblemen" führten. erschien erst recht spät im Prozess. Niemand sonst hielt es für lohnenswert, erneut Stimmen zu eröffnen, sobald er seinen aktuellen Zustand erreicht hatte. Mokubai vor 5 Jahren 1

0 Antworten auf die Frage