我有一个简单的脚本。我已经在命令行中测试了它。一切安好。 但我的浏览器无法执行它。它总是试图下载它。我检查了所有的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";
}
最佳答案
你应该:
- 检查 perl 的路径
- 检查 shebang,例如
#!/path/perl
-
chmod 755 /var/www/president/cgi/myscriptname.pl
,并且 - 检查您的
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/