2014-09-05 4 views
0

Je suis sous Apache 2.4.7 et Ubuntu 14.04. J'essaye d'exécuter le script perl de base suivant (/home/fred/workspace/portfolio/cgi/fred.pl) sous ModPerl::Registry mais il ne s'exécutera pas (le navigateur le traite comme un fichier à télécharger, pas un script perl)ModPerl :: Registry - Impossible d'exécuter le script CGI Perl

#!/usr/bin/perl 

print "Content-type: text/html\n\n"; 
print "Hi Fred !"; 

Ceci est ma configuration d'hôte virtuel:

<VirtualHost 127.0.0.1:80> 
     ServerAdmin [email protected] 
     DocumentRoot /home/fred/workspace/portfolio/html 

AddHandler perl-script .cgi .pl 
PerlModule ModPerl::Registry 
Alias//home/fred/workspace/portfolio/cgi/ 
<Location /> 
     SetHandler perl-script 
     PerlHandler ModPerl::Registry 
     Require all granted 
     Options +ExecCGI 
</Location> 

Je lance précédemment

sudo a2enmod cgi 

qui a effectivement activé cgid (mon apache est enfilé), très bien.

quand je tape 127.0.0.1/fred.pl, aucune exécution (fred.pl 777 a des droits)

Toute idée?

Merci

+0

Avez-vous vérifié le journal des erreurs? –

+0

oui, rien d'anormal dans error.log. Avoir ceci dans access.log: 127.0.0.1 - - [05/Sep/2014: 14: 58: 06 +0200] "GET /fred.pl HTTP/1.1" 200 249 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv: 32.0) Gecko/20100101 Firefox/32.0 " –

+1

cela aide-t-il si je dis que curl http: //localhost/fred.pl fonctionne? –

Répondre

0

La première chose que je vérifie est que vous avez le fichier de configuration droite apache. (Simple façon de vérifier: mettre une erreur de syntaxe et voir si elle se plaint lorsque vous redémarrez le serveur.)

Si c'est le bon fichier, alors vous avez un problème avec vos directives de configuration. Il est difficile de déboguer ceux sans voir le fichier entier. Vous pouvez essayer de commencer avec une section de configuration très simple, comme celle here.

Je désactiverais probablement cgid jusqu'à ce que cela fonctionne aussi bien.

+0

ok merci je vais essayer ça. –

0

Fist, PerlHandler Le gestionnaire est la directive mod_perl1. mod_perl2 a PerlResponseHandler alternative de gestionnaire.

Voici donc droit:

PerlResponseHandler ModPerl::Registry 

Et avez-vous charger mod_perl.so? Lorsque vous utilisez Ubuntu, puis tapez:

sudo a2enmod perl 

ou écrire la ligne appropriée LoadModule et redémarrez le serveur.

Peut-être, il y a un autre problème. Cependant je n'ai pas assez d'informations.

Enfin, je conseille que mod_perl2 ne supporte pas officiellement Apache 2,4 en ce moment (déc. 2014).

Questions connexes