0

unixserverA で Apache を実行していて、この URL を使用してブラウザで unix [/app1/bea/hello.txt] のファイルを表示したいhttp://unixserverA/sg/hello.txt

httpd.conf に必要な変更を教えてください。

httpd.conf に conf ファイル [bulk.conf] を含めましたが、その bulk.conf ファイルには以下のエントリがあり、役に立ちません。

ScriptAlias /sg/ "/app1/bea/"

以下は、ブラウザに表示されるエラーです

内部サーバー エラー サーバーで内部エラーまたは構成ミスが発生したため、要求を完了できませんでした。

サーバー管理者の user@unixserverA に連絡して、エラーが発生した時刻と、エラーの原因となった可能性のある操作を知らせてください。

このエラーの詳細については、サーバー エラー ログを参照してください。

エラー ログには次のように表示されます。

[Thu Feb 21 04:57:45 2013] [エラー] (2) No such file or directory: exec of '/appl/bea/hello.txt' failed
[Thu Feb 21 04:57:45 2013] [error] [クライアント 109.71.70.209] スクリプト ヘッダーの途中終了: hello.txt

4

1 に答える 1

1

ScriptAliasディレクティブを使用すると、選択したディレクトリ内のすべてのファイルをスクリプトまたは実行可能ファイルとして処理するように Apache に指示できます。Apache チュートリアル: CGI を使用した動的コンテンツで説明されているように、このようなスクリプトは、HTTP ヘッダーを含む HTTP 応答の有効な出力を生成することが期待されます。たとえば、printenv.plApache にバンドルされているサンプル スクリプトがあります。

#!/usr/bin/perl
##
##  printenv -- demo CGI program which just prints its environment
##

print "Content-type: text/plain; charset=iso-8859-1\n\n";
foreach $var (sort(keys(%ENV))) {
    $val = $ENV{$var};
    $val =~ s|\n|\\n|g;
    $val =~ s|"|\\"|g;
    print "${var}=\"${val}\"\n";
}

実行可能ファイルとして、コンソールから実行することもできます。

./printenv.pl

hello.txt何が含まれているのかわかりませんが、*.txt拡張子はそれがプログラムではないことを示唆しています。結局のところ、それプログラムである場合は、次のことを確認してください。

  • 少なくともContent-Typeヘッダーと空白行が出力されます。
  • 実行可能フラグがあります。chmod a+x hello.txt
于 2013-02-22T15:44:24.290 に答える