2011-09-19 7 views
1

Je dispose d'un fichier perl.cgi qui a le contenu:script cgi n'exécute

#!/usr/bin/perl 
print "Content-type: text/html\n\n"; 
print "<h1>Hello World</h1>\n"; 

je l'ai fait exécutable. (chmod a+x perl.cgi) Puis j'ai créé un nouveau fichier perl.htm dans le même répertoire. Qui a les données suivantes:

Content-type: text/html 
<p><a href="perl.cgi">RUN perl.cgi</a></p> 

Quand je lance le perl.htm dans mon navigateur je reçois la sortie comme:

Content-type: text/html 
RUN perl.cgi 

Lorsque je clique sur RUN perl.cgi une autre page ouvre et là, la sortie est:

#!/usr/bin/perl 
print "Content-type: text/html\n\n"; 
print "<h1>Hello World</h1>\n"; 

Par exemple, le perl.cgi ne s'exécute pas. Seul le contenu du fichier est affiché. À partir des réponses et des commentaires, j'ai appris que je devais configurer mon serveur Web (apache) pour exécuter des scripts cgi. Comment puis je faire ça? Faites le moi savoir.

+0

Vous devez décrire la configuration de votre serveur Web de manière beaucoup plus détaillée. –

+1

A voté pour passer à http://serverfault.com mais ... essayez de renommer le fichier en 'perl.pl'. Si ce n'est pas le cas, vous devez configurer votre serveur Web correctement pour l'exécution de perl cgi –

Répondre

9

Sons comme Apache n'est pas configuré pour exécuter les fichiers * .cgi:

AddHandler cgi-script cgi pl 
<Directory /path/to/cgi/files> 
    Options +ExecCGI 
</Directory> 
+0

Terminé, toujours avec le même problème –

+0

btw utiliser à la fin. –

+0

Vous avez raison, corrigé. –

0

Vous devez configurer votre serveur Web afin qu'il exécute les fichiers * .cgi (ou, plus normalement, tous les fichiers dans un répertoire particulier) plutôt que de simplement les livrer au navigateur comme il le fait fichiers .html.

Comment cela est fait dépend de votre serveur.

+0

J'utilise Apache. Comment puis-je le configurer pour pouvoir exécuter cgi? –

+0

Voir la réponse de @Gabriel et peut-être ajouter ScriptAliasMatch ^/cgi-bin (. *) "/ Full/chemin/vers/cgi/répertoire/$ 1" dans votre section blankabout

4

Assurez-vous que vous chargez le module CGI dans le fichier httpd.conf:

LoadModule cgi_module modules/mod_cgi.so ou LoadModule cgi_module modules/mod_cgid.so selon la version d'Apache que vous utilisez. Vous pouvez également lire des solutions supplémentaires pour Dynamic Content with CGI.

Questions connexes