Perl没有运行

时间:2011-11-09 08:59:29

标签: perl apache cgi

我以前有过使用mac设置多个Perl程序的经验,但今天遇到了一个奇怪的情况。

我删除了一个现有的Perl文件夹并从GitHub下载,当我再次尝试运行时,它显示以下错误:[处理此指令时出错]。

所以,我要调试的是:

1)我创建了test.shtml(这里显示箭头符号的一些问题)

#exec cgi="/Users/lion/htdocs/app/cgi-bin/test.pl"-->

2)我创建了test.pl

#!/usr/bin/perl
print "content-type: text/html \n\n";
print "test";

3)我创建了一个新的htaccess

AddType text/html .shtml
AddHandler server-parsed .shtml

4)我将test.pl权限设置为777

5)我用http://app.local/test.shtml进行了测试      - >出现错误[处理此指令时发生错误]。

6)如果我从控制台手动运行,它运行正常。

这也是我的apache配置。

<VirtualHost *:80>
    DocumentRoot "/Users/lion/htdocs/app"
    ServerName app.local
    ScriptAlias /cgi-bin/ "/Users/lion/htdocs/app/cgi-bin/" 
</VirtualHost>

我的apache错误日志显示:

[Wed Nov 09 16:45:25 2011] [error] [client 127.0.0.1] invalid CGI ref "/Users/lion/htdocs/app/cgi-bin/test.pl" in /Users/lion/htdocs/app/test.shtml

不确定我错过了什么,我的其他Perl程序运行得很好。用尽了导致问题的想法。

2 个答案:

答案 0 :(得分:3)

exec cgi expects a URL-path,而不是文件系统路径作为参数。

尝试

#exec cgi="/cgi-bin/test.pl"

或只是

#exec cgi="test.pl"

答案 1 :(得分:0)

好吧,花了一些时间进行调试后,发现原因是在cgi-bin中使用身份验证的.htaccess,它会阻止重定向。