2015-08-31 61 views
2

我正尝试使用Fast CGI从Azure Web App运行Perl。我建立了PHP,它工作正常,但不能让Perl工作。运行Perl我已经安装草莓的Perl(我曾尝试在32位和64位,便携式版本)从Azure Web App运行Perl

我添加了一个处理程序*特等如下

d:\home\site\wwwroot\bin\perl\bin\perl.exe 

我有一个简单Perl程序test.pl如下

#!/usr/bin/perl 

use strict; 
use warnings; 

print "Hello, World!\n"; 

它从控制台,如果我键入以下命令(从d:\家\网站\ wwwroot文件夹)运行,因此Perl是工作确定。

> bin\perl\bin\perl.exe test.pl 

如果我使用http

http://mywebapppath/test.pl 

它,我得到一个500错误

如果我查看日志在得到以下观点:

HTTP Error 500.0 - Internal Server Error 

d:\home\site\wwwroot\bin\perl\bin\perl.exe - The FastCGI process exited unexpectedly 

我已经运行出于想法接下来要尝试什么。有什么建议么?

+0

这不是一个fastcgi脚本。你在哪里以及如何添加了什么处理程序? – bytepusher

+0

我点击了Web应用程序的设置,并在处理程序部分添加了一个。就像我说的,test.pl从控制台运行。 –

+0

你仍然需要使用fastcgi脚本才能让它通过FastCGI处理,我会建议采取一个简单的示例脚本并尝试。看看http://search.cpan.org/~skimo/FCGI-0.67/FCGI.PL – bytepusher

回答

1

我设法弄明白了,它很模糊,所以我希望它有帮助,如果你有类似的问题。

草莓Perl(位于bin文件夹中,因此无法从外部运行)附带cpan.bat文件,您需要使用此批处理文件从Azure中的控制台安装Fast Cgi模块。

bin\perl\bin\cpan.bat -i /FCGI::IIS/ 

第二件事是在您的web应用程序中为.pl处理程序添加一个参数。

-MFCGI::IIS=do 

这就是你需要做的。只需重新启动服务器,并从我的test.pl页面上运行Perl!

+1

对于未来的读者:请注意,您的.pl脚本必须包含内容类型声明(例如'print“Content-type:text/plain \ n \ n“个;')。否则会引发错误,这在日志中显示为“数据无效”)。 – AaronSieb