2015-08-31 103 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