FastCGI与perl -在共享Linux网站主机



我正在尝试建立一个在线"实时聊天"服务,并且由于许多原因,我发现FastCGI适合于此(根据其文档),但我似乎无法让它运行。

我使用Apache 2.2与mod_fcgid安装共享主机。我的。htaccess文件添加了以下行:

AddHandler fcgid-script .fcgi

我的perl测试脚本名为fcgitest。Fcgi如下:

#!/usr/bin/perl
# fcgitest.fcgi
use diagnostics;
use warnings;
use strict;
use CGI;
use CGI::Carp 'fatalsToBrowser'; # tester only!
use FCGI;
my %env; my $in = new IO::Handle; my $out = new IO::Handle; my $err = new IO::Handle; 
my $request=FCGI::Request($in, $out, $err, %env);
if($request->IsFastCGI()==0) { 
    print "Content-Type: text/plainnn"; binmode STDOUT; print "ERR"; exit 0; 
}
my $tm=time();
while($request->Accept() >= 0) {
    my $env=$request->GetEnvironment();
    print "Content-Type: text/plainnn"; binmode STDOUT;
    print time()." ".$env;
    if(time()>($tm+60)) { $request->Finish(); exit 0; }
}
print "Content-Type: text/plainnn"; binmode STDOUT; print "---"; exit 0;

当我从我的一个页面内调用这个脚本,我得到内部服务器错误,代码500,没有解释,没有错误日志在服务器日志文件。

  1. 我试图隐藏所有的代码,只留下打印语句,问题仍然相同。
  2. 我尝试将文件移动到fgi -bin目录,但问题仍然存在。
  3. 我已经检查了perl模块已经安装好了。

我不知道什么会导致这个错误,因为我的主机供应商说服务器是为FCGI配置好的…

您使用的是哪种共享主机?大多数共享主机都已经安装了fcgi,您不需要自己测试fcgi模块。

例如,在godaddy共享主机上,.fcgi/。fpl,甚至我的。pl文件将运行FCGI而不是正常的CGI。不需要额外的努力。

尝试不同的文件权限,如644,700,750,755的脚本正在运行。

另外,试着添加一行:

print "Content-type:text/htmlnn";

后使用CGI::鲤鱼行。

最新更新