Question

J'essaie d'exécuter un script Perl simple sur mon serveur et je reçois un serveur 500 interne et quand je vérifie les journaux d'erreur, il indique:

Premature end of script headers: test.pl

Voici le script perl:

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

Mon dossier cgi-bin dispose des autorisations de 0755. Le script lui-même est aussi 0755. Le script est détenu par apache et son dans le apache du groupe. Le script fonctionne très bien via la ligne de commande.

Quel est le problème et comment puis-je résoudre ce problème?!

Merci à tous pour toute aide!

Mise à jour

trouver intéressant dans 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)

Mais mon cgi-dossier est le même que le script test.pl - est-il référence à un autre répertoire

Était-ce utile?

La solution

Il y a beaucoup de bonnes suggestions de dépannage pour les scripts Perl donnant ce message d'erreur sur PerlMonks: commencer ici . Je ne vois pas d'erreurs spécifiques dans votre script, et il semble que vous avez couvert les autorisations de fichier, donc je commencerai par les suggestions de configuration Apache.

Autres conseils

Beaucoup de bons conseils: Comment puis-je résoudre mon script Perl CGI .

Mise à jour après avoir vu votre message d'erreur suexec: Ressemble votre serveur a besoin du programme CGI à appartenir au même utilisateur que le répertoire. Essayez de changer la propriété du fichier.

Utiliser le module CGI par exemple.

use CGI qw/:standard/;
$q = CGI->new;
print $q->header('text/html');
print "testing...\n";     
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top