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] [error] (2)No such file or directory: exec of '/appl/bea/hello.txt' failed
[Thu Feb 21 04:57:45 2013] [error] [client 109.71.70.209] 脚本头过早结束:hello.txt

4

1 回答 1

1

当您使用ScriptAlias指令时,您指示 Apache 将所选目录中的任何文件作为脚本或可执行文件处理。正如Apache 教程:使用 CGI 的动态内容所解释的那样,此类脚本有望为 HTTP 响应生成有效输出,包括 HTTP 标头。例如,有一个printenv.pl与 Apache 捆绑在一起的示例脚本:

#!/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 回答