apache - 即使我的浏览器尝试下载 .pl 脚本,如何执行它?

标签 apache perl cgi ubuntu-12.04

我有一个简单的脚本。我已经在命令行中测试了它。一切安好。 但我的浏览器无法执行它。它总是试图下载它。我检查了所有的apache配置文件,但没有发现任何问题。

/etc/apache2/sites-available looks like this:

ScriptAlias /cgi-bin/ /var/www/president/cgi
<Directory "/cgi-bin/ /var/www/president/cgi">
AddHandler cgi-script cgi pl
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

脚本非常简单

#!/usr/bin/perl -w
use CGI;
print "Content-type: text/html\n\n";
foreach (sort keys %ENV) {
print "<i>$_</i>: $ENV{$_}<br/>\n";
}

最佳答案

你应该:

  1. 检查 perl 的路径
  2. 检查 shebang,例如#!/path/perl
  3. chmod 755 /var/www/president/cgi/myscriptname.pl ,并且
  4. 检查您的error_log ! ;)

但问题可能是

AddHandler cgi-script cgi pl

这应该是

AddHandler cgi-script .cgi .pl
                      ^    ^ dots here

你也有一个错误<directory...规范..

该部分:

<Directory "/var/www/president/cgi">
AddHandler cgi-script .cgi .pl

和/或检查以下行:

LoadModule cgi_module lib/apache2/modules/mod_cgi.so

Ps:不相关,但仍然是一个很好的建议,请阅读有关 Plack 的内容& PSGI 。可以加快您的 perl-web-app开发很多很多很多(真的很多)次。 (你可以没有这样的问题生活):)

关于apache - 即使我的浏览器尝试下载 .pl 脚本,如何执行它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25603809/

相关文章:

perl zip 目录为空

c - 以编程方式处理 ctrl +d?

perl - 从 cpan 安装 Perl CGI 模块时出错

apache - 为什么 Tomcat 缺少内置的速率限制过滤器?

java - 获取 mime 类型描述/名称/友好格式

Apache 2.2 WebDav 匿名访问

perl - :Args and :CaptureArgs in Catalyst?和有什么不一样

python - 主机Gator : Sent JSON data from Server using cgi python script

javascript - Perl CGI 和 JavaScript |选择选项的烦恼

php - 使用浏览器时Redis不工作