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

Tre*_*nas 2 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
Run Code Online (Sandbox Code Playgroud)

脚本很简单

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

jm6*_*666 5

你应该:

  1. 检查perl的路径
  2. 检查一下,例如 #!/path/perl
  3. chmod 755 /var/www/president/cgi/myscriptname.pl,和
  4. 检查你的error_log!;)

但可能问题是

AddHandler cgi-script cgi pl
Run Code Online (Sandbox Code Playgroud)

这应该是

AddHandler cgi-script .cgi .pl
                      ^    ^ dots here
Run Code Online (Sandbox Code Playgroud)

你也有错误的<directory...规格..

这部分:

<Directory "/var/www/president/cgi">
AddHandler cgi-script .cgi .pl
Run Code Online (Sandbox Code Playgroud)

和/或检查这样的行:

LoadModule cgi_module lib/apache2/modules/mod_cgi.so
Run Code Online (Sandbox Code Playgroud)

Ps:不相关,但仍然是一个很好的建议,请阅读关于Plack&的一些事情PSGI.可以加速你的perl-web-app开发很多很多(很多次).(你可以没有这样的问题生活):)