J’ai un fichier guestbook.htm
dans le répertoire nommé Chrome (/home/chankey/Desktop/Chrome/guestbook.htm) dont le contenu est donné ci-dessous
Guestbook
Dans le même répertoire Chrome, j’ai un fichier “guestbook.pl” dont le contenu est
#!/usr/bin/perl my $query_ssortingng = ""; #Get the input if ($ENV{REQUEST_METHOD} eq 'POST') { read(STDIN, $query_ssortingng, $ENV{CONTENT_LENGTH}); } else { $query_ssortingng = $ENV{QUERY_STRING}; } ##### We will remove this print "Content-Type: text/html\n\n"; print "Query Ssortingng is \n
$query_ssortingng"; ##### We will remove this
Lorsque j’exécute le fichier guestbook.htm, un formulaire apparaît, lorsque je remplis les données et que je clique sur le bouton “Ajouter une entrée”, une nouvelle page s’ouvre où le script complet apparaît.
c’est-à-dire que le script “guestbook.pl” n’est pas en cours d’exécution. Puis-je connaître la raison derrière cela? Pourquoi le script ne s’exécute pas? (J’ai déjà donné une autorisation d’exécution à ce fichier).
Dans le fichier httpd.conf, j’ai ajouté
AddHandler cgi-script cgi pl Options +ExecCGI
Il n’est toujours pas en cours d’exécution. Laissez-moi savoir la raison.
Lorsque vous accédez à un fichier localement (via le file://
tapez l’URL dans votre navigateur), il ne s’exécute pas à partir d’un serveur Web, donc:
httpd.conf
/ .htaccess
n’ont aucun effet Quelques façons de gérer cela:
public_html
dans votre maison. Votre serveur Web a probablement un paramètre pour mapper http://localhost/~chankey/
vers /home/chankey/public_html
. (Sur MacOSX, le nom préféré est plutôt Sites
, je crois.) Sur un système SELinux, vous devrez accorder spécifiquement l’autorisation à Apache d’utiliser cette méthode. CGI
standard, vous pouvez également les exécuter manuellement à partir d’un shell de terminal et redirect leur sortie vers un fichier temporaire (par exemple, >/tmp/output.html
) auquel vous pouvez accéder. /var/www/html/
… PS / unrelated: Je recommande fortement que, si vous envisagez de mettre cela sur Internet, vous devriez probablement use CGI; use ssortingct;
use CGI; use ssortingct;
et avoir le mode tainting activé #!/usr/bin/perl -WT
…