HTML form action endet das herunterladen perl-Datei nicht ausgeführt werden, sondern es

Ich habe versucht, führen Sie ein einfaches perl-cgi-Skript auf windows 7. Dies ist ein einfaches HTML-Formular mit einer OK-Taste, wo Sie auf die OK-Taste zeigt einige text. Aber auf den OK-button auf der HTML-Seite, statt die Ausführung und Anzeige von perl-Datei wird ausgegeben, der browser startet den Download des Skripts. Ich habe Hinzugefügt-handler in httpd.conf

AddHandler cgi-script .pl

Aber das hilft nicht. Ich fügte hinzu, die option ExecCGI in der httpd.conf aber das hat auch nicht geholfen.

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
    AllowOverride None
    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

Hier ist das perl-Skript verwendet:

#!C:\Perl\bin\perl
use CGI;

print "Content-type: text/plain","\n\n";
print "<html>","\n";
print "<head>\n\t<title>Server Information Ready</title>\n</head>","\n";
print "<body>","\n";
print "<h1>Server Information</h1>","\n";
print "</body></html>","\n";

Und hier ist die html-Datei:

<html>
<head><title>Server Information</title></head>
<body bgcolor="#EEAA55">
<h3>Please click OK to get the server information</h3>
<hr><pre>
<form action="http://localhost/cgi-bin/ctest/pranav1a.pl" method="post">
<input type="submit" value="OK">
</form>
</hr></pre>
</body>
</html>

Habe ich versucht diese in chrome, IE und Mozilla. Mozilla und chrome starten Sie den perl-Datei herunterladen, aber der IE zeigt nur einige seltsame Inhalte auf Klick auf die Schaltfläche OK. Wie kann ich das browser-display-Ausgang von file execution anstatt das Skript zu laden ?

PS: ich habe versucht die shebang-Zeile als"#!c:/Perl/bin/perl' das scheint nicht zu funktionieren. Ich bin in der Lage, um zu sehen, das perl-Skript den output bei der Ausführung von cmd-Eingabeaufforderung.

  • hast du dies testen, auf einem live-server. localhost kann diese Ausgabe so konfigurieren Sie eine Menge von Optionen. Ich würde vorschlagen, Sie versuchen es auf einer Produktions-Umgebung
  • In httpd.conf, stellen Sie sicher, diese Zeile ist auskommentiert: LoadModule cgi_module modules/mod_cgi.so Fügen Sie ein ScriptAlias: <IfModule alias_module>ScriptAlias /cgi-bin/ "C:/BitNami/apache2/cgi-bin/"</IfModule> ScriptAliases sind im wesentlichen dasselbe wie Aliases, mit der Ausnahme, dass Dokumente im Zielverzeichnis werden behandelt, als Anwendungen, und führen Sie durch den server, wenn die angeforderten und nicht als Dokumente an den client gesendet.
  • Da Sie sich entschieden haben, zu verwenden .pl statt .cgi, müssen Sie diese in httpd.conf: AddHandler cgi-script .pl (wahrscheinlich gibt es bereits eine für den .cgi-Erweiterung; wenn nicht, fügen Sie es auch. Und möchten Sie vielleicht, um Ihre .pl /cgi-bin statt den sub-directory-ctest.
InformationsquelleAutor Pranav | 2013-03-17
Schreibe einen Kommentar