当请求来自 chrome 时,Apache 返回 perl 脚本源而不是执行脚本

当请求来自 chrome 时,Apache 返回 perl 脚本源而不是执行脚本

我刚刚在我的 Web 服务器上安装完 awstats,使用 Firefox 运行良好。但是当我尝试使用 Chrome 打开 awstats 页面时,会下载 perl 源脚本(而不是执行)。似乎 Chrome 请求的 MIME 行为与 Chrome 不同。有什么想法吗?

Apache 配置文件中有趣的部分:

<Directory "/var/www/cryptis-https-root/admin-awstats">
  Options Indexes FollowSymLinks MultiViews  ExecCGI
  AllowOverride None
  Order allow,deny
  Allow from X.Y
</Directory>

Alias /awstatsclasses "/var/www/awstats/wwwroot/classes/"
Alias /awstatscss "/var/www/awstats/wwwroot/css/"
Alias /awstatsicons "/var/www/awstats/wwwroot/icon/"
ScriptAlias /admin-awstats/ "/var/www/awstats/wwwroot/cgi-bin/"

<Directory "/var/www/awstats/wwwroot">
  Options None ExecCGI
  AllowOverride None
  Order allow,deny
  Allow from X.Y
</Directory>

我尝试在 apache 配置文件中添加以下行,但没有效果:

AddHandler cgi-script .pl

答案1

你可以尝试这个:

<Directory "/var/www/awstats/wwwroot/cgi-bin/">
  Options +ExecCGI
  AllowOverride None
  Order allow,deny
  Allow from X.Y
</Directory>

Alias /awstatsclasses "/var/www/awstats/wwwroot/classes/"
Alias /awstatscss "/var/www/awstats/wwwroot/css/"
Alias /awstatsicons "/var/www/awstats/wwwroot/icon/"
ScriptAlias /admin-awstats/ "/var/www/awstats/wwwroot/cgi-bin/"

<Directory "/var/www/awstats/wwwroot">
  Options None
  AllowOverride None
  Order allow,deny
  Allow from X.Y
</Directory>

答案2

答案是你需要打开 CGI 脚本。为此,你需要运行命令a2enmod cgi

答案3

出于好奇。你确定它在 Chrome 中回显了 Perl 源代码吗?还是 Chrome 无法呈现响应?后者可能是由于缺少 MIME 类型造成的。

相关内容