2013-12-10 71 views
0

我寫的example爲什麼我的Perl FastCGI的腳本不打開插座

#!/usr/bin/perl -w 
use strict; 

use FCGI; 

my $count = 0; 
my $request = FCGI::Request(); 

while($request->Accept() >= 0) { 
    print("Content-type: text/html\r\n\r\n", ++$count); 
} 

比我使這個可執行腳本並在終端執行它,但不是打開插座一個簡單的Perl FasCGI腳本,該腳本打印

內容類型:文本/ HTML

並結束。 爲什麼?

UPDATE

感謝球員,但我不明白一個瞬間,我的劇本是怎麼知道的,我安裝或沒有Web服務器模塊的?爲什麼我需要服務器正常運行FastCGI的腳本?例如,當我運行Catalyst fastcgi starter時,我不需要任何服務器,並且可以在沒有服務器的任何機器上運行該腳本。

+0

我很確定FCGI希望你的腳本以某種方式從web服務器被調用。它本身並不是一個網絡服務器。 –

回答

1

請從以下鏈接檢查安裝FastCGI部分。我相信你錯過了這個。 http://www.intranetwerx.com/bookshelf2/linux/cgi/ch17_02.htm

+0

fastcgi腳本也是一個CGI腳本。但是對於fastcgi,Web服務器通過套接字將請求發送到快速CGI進程。你可以從http://en.wikipedia.org/wiki/FastCGI#Implementation_details找到更多清晰的細節。 –

0

這是一種調試模式。它不是因爲沒有提供適當的Fast CGI環境而死亡,而是模擬一個請求。

unless ($req->IsFastCGI()) { 
    return -1 if $run_once; 

    $run_once = 1; 
    return 0; 
} 

你知道Fast CGI是一種通信協議,用於腳本和Web服務器中的模塊通信,對嗎?您需要讓Web服務器模塊啓動您的腳本。

相關問題