需要apache来显示unix目录吗

需要apache来显示unix目录吗,apache,Apache,我在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/” 下面是我在浏览器中看到的错误 内部服务器错误 服务器遇到内部错误或配置错

我在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)没有这样的文件或目录:“/appl/bea/hello.txt”的exec失败
[Thu Feb 21 04:57:45 2013][error][client 109.71.70.209]脚本头过早结束:hello.txt

使用该指令时,指示Apache将所选目录中的任何文件作为脚本或可执行文件处理。正如所解释的,这样的脚本应该为HTTP响应生成有效的输出,包括HTTP头。例如,Apache附带了
printenv.pl
示例脚本:

#!/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
扩展名表明它根本不是一个程序。如果它毕竟是一个程序,请确保:

  • 它至少打印一个
    内容类型
    标题和一个空行
  • 它具有可执行标志:
    chmoda+xhello.txt

为什么
ScriptAlias
?要显示静态文件还是运行脚本?不管怎样,按照错误消息建议,检查服务器错误日志。我希望运行一个脚本。日志中的错误消息显示……[Thu Feb 21 04:57:45 2013][Error](2)没有这样的文件或目录:“/appl/bea/hello.txt”的exec失败[Thu Feb 21 04:57:45 2013][Error][client 109.71.70.209]脚本头过早结束:hello.txt