Gennerate HTML dengan modul CGI.pm


0

Saya telah menyiapkan apache2 pada server fedora dan saya ingin menghasilkan HTML dengan skrip perl. Ini adalah skrip pengujian yang saya buat dengan bantuan dari perldoc:

#!/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; 

Ini mengembalikan "Internal Server Error" tetapi ketika saya menjalankannya di terminal dengan perl test.cgi , terlihat baik. Saya telah menempatkannya di / cgi-bin dir, skrip skrip lain berfungsi tanpa masalah.

EDIT

Saya sudah mencoba dengan tugas satu baris seperti system("date") dan itu mengembalikan tanggal di browser. Juga memeriksa izin untuk kesalahan.

Ini berfungsi saat membuat dengan potongan kode berikut.

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>';

Catatan eror :

[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

LARUTAN Saya pikir salah satu masalahnya mungkin HTML :: Entitas menginstalnya, lalu berhasil


Seberapa yakin Anda bahwa pesan kesalahan yang Anda lihat berasal dari modul ini? "Server error" terdengar lebih seperti sesuatu yang akan datang dari Apache. Bisakah Anda membuat skrip shell sederhana yang melakukan tugas "hello world" sepele yang sama dengan skrip Perl Anda, tukar, dan lihat apa yang terjadi? Mungkin ada masalah dengan cara skrip Perl ini dipanggil. Pleasedonot tidak menanggapi dalam komentar; sunting pertanyaan Anda untuk membuatnya lebih jelas dan lebih lengkap.
Scott

1
Kesalahan mana yang dilemparkan ke log kesalahan Apache?
Toto

Anda dapat mencoba menambahkan $|++ tepat sebelum yang pertama print. Lihat: perldoc.perl.org/perlfaq5.html#How-do-I-flush/…
Toto

Mengapa ini ditunda? Tampaknya menjadi masalah dengan konfigurasi server web daripada bug perangkat lunak. Bukankah pertanyaan tentang konfigurasi diizinkan?
shawnhcorey

1
@shawnhcorey revisi asli dari pertanyaan ini tidak memberikan indikasi bahwa itu bisa menjadi masalah konfigurasi dan tampak seperti kode bermasalah. Itu pergi melalui ulasan setelah mengedit tetapi tampaknya itu mungkin belum cukup diperbaiki sebelum meninggalkan ulasan, ada beberapa pengeditan dan yang mengarah ke "masalah konfigurasi" hanya muncul sangat terlambat dalam proses. Tidak ada orang lain yang berpikir itu layak memberikan suara terbuka kembali setelah itu mencapai kondisi saat ini juga.
Mokubai
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.