Domanda

provo ad eseguire uno script Perl semplice sul mio server ed ottengo un server interno 500 e quando controllo i log degli errori mostra:

Premature end of script headers: test.pl

Ecco lo script perl:

#!/usr/bin/perl -w
print "Content-type: text/plain\n\n";
print "testing...\n";

La mia cartella cgi-bin dispone di autorizzazioni di 0755. Lo script stesso è anche 0755. La sceneggiatura è di proprietà di apache e il suo gruppo nel apache. Lo script funziona bene tramite la riga di comando.

Qual è il problema e come posso risolvere questo problema?!

Grazie a tutti per qualsiasi aiuto!

Aggiorna

trovare interessanti in suEXEC:

2010-09-14 17:38:28]: uid: (10001/som) gid: (2522/2522) cmd: test.pl
[2010-09-14 17:38:28]: target uid/gid (10001/2522 or 2521) mismatch with directory (48/0) or program (48/0)

Ma il mio cgi-cartella è lo stesso dello script test.pl -? È riferisce a un'altra directory

È stato utile?

Soluzione

Ci sono un sacco di buoni consigli per la risoluzione dei problemi script Perl dando quel messaggio di errore sul PerlMonks: inizia da qui . Non vedo errori specifici nello script, e sembra di aver coperto i permessi dei file, quindi mi piacerebbe iniziare con i suggerimenti di configurazione di Apache.

Altri suggerimenti

Un sacco di buoni consigli: Come posso Risoluzione dei problemi il mio Perl script CGI .

Aggiornamento dopo aver visto il tuo messaggio di errore suexec: Sembra che il server ha bisogno il programma CGI ad essere di proprietà dello stesso utente come la directory. Provare a cambiare la proprietà del file.

Usa CGI modulo per es.

use CGI qw/:standard/;
$q = CGI->new;
print $q->header('text/html');
print "testing...\n";     
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top