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

时间:2014-09-01 10:31:51

标签: 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 个答案:

答案 0 :(得分:5)

你应该:

  1. 检查perl的路径
  2. 检查shebang,例如#!/path/perl
  3. chmod 755 /var/www/president/cgi/myscriptname.pl
  4. 检查您的error_log! ;)
  5. 但可能问题是

    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&amp; PSGI。可以加快你的perl-web-app开发很多次(真的很多次)。 (你可以没有这些问题生活):)