0

Windows 7 で単純な perl-cgi スクリプトを実行しようとしています。これは、[OK] ボタンをクリックするとテキストが表示される [OK] ボタンのある単純な HTML フォームです。しかし、HTML ページの [OK] ボタンをクリックすると、perl ファイルの出力を実行して表示する代わりに、ブラウザーがスクリプトのダウンロードを開始します。httpd.conf にハンドラーを追加しました

AddHandler cgi-script .pl

しかし、これは役に立ちません。httpd.conf に ExecCGI オプションを追加しましたが、それも役に立ちませんでした。

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

使用されている perl スクリプトは次のとおりです。

#!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";

そして、ここにhtmlファイルがあります:

<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>

Chrome、IE、および Mozilla でこれを試しました。Mozilla と chrome は perl ファイルのダウンロードを開始しますが、IE は [OK] ボタンをクリックすると奇妙なコンテンツを表示するだけです。スクリプトのダウンロードを開始するのではなく、ブラウザにファイル実行の出力を表示させるにはどうすればよいですか?

PS: シバン行を '#!c:/Perl/bin/perl' として使用しようとしましたが、どちらも機能していないようです。cmd プロンプトから実行すると、perl スクリプトの出力を確認できます。

4

3 に答える 3

1

解決策が見つかりました:私の場合、フォームアクションで「localhost:8080」の代わりに「localhost」を使用していました。

<form action="http://localhost:8080/cgi-bin/pranav1a.pl" method="post">
于 2013-03-20T03:05:24.267 に答える
0

+ExecCGIオプションはどうですか?+その手前を試してみてください。

さらに、これらは通常、suexec2 を理解する上での問題です (suexec2 が Windows プラットフォームに適用されるかどうかは不明です)。

あそこのページ全体を読んでください。このような問題は、suexec によって強制される全体的な制限を理解していないと修正できません。一般的なエラーは次のとおりです。

  • suexec2 実行可能ファイルの権限が間違っています。
  • CGI スクリプトが間違った場所にあります。

apache.org/docs/2.2/howto/cgi.html#troubleshootはもう完了しましたか?

于 2013-03-17T20:13:35.700 に答える
0

ありがとうスカボコビッチ。

私の場合、次の行は httpd.conf ファイルでコメントアウトされています。

#LoadModule cgi_module /opt/freeware/lib64/httpd/modules/mod_cgi.so

コメントを外して再起動するとapache、CGI スクリプトをテキスト ファイルとして開く代わりに実行できるようになりました。

于 2015-01-27T20:42:27.607 に答える