2011-11-09 81 views
0

我有使用mac设置多个Perl程序的经验,但今天遇到了一个奇怪的情况。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程序运行得很好。什么原因导致问题,用尽想法。

回答

3

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

尝试

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

或只是

#exec cgi="test.pl" 
+0

我在另一个perl安装程序上运行没有问题。我不认为这是原因。 – TonyTakeshi

+2

你试过了吗? –

0

好,有时开支调试完毕后,发现原因是在cgi-bin目录认证,它会阻止重定向的.htaccess。