【问题标题】:FastCGI with perl - On shared Linux webhost带有 perl 的 FastCGI - 在共享的 Linux 虚拟主机上
【发布时间】:2014-10-15 21:43:43
【问题描述】:

我正在尝试构建一个在线“实时聊天”服务,出于多种原因,我发现 FastCGI 适合该服务(根据其文档),但我似乎无法让它运行。

我正在使用安装了 mod_fcgid 的 Apache 2.2 共享主机。 我的 .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/plain\n\n"; binmode STDOUT; print "ERR"; exit 0; 
}
my $tm=time();
while($request->Accept() >= 0) {
    my $env=$request->GetEnvironment();
    print "Content-Type: text/plain\n\n"; binmode STDOUT;
    print time()." ".$env;
    if(time()>($tm+60)) { $request->Finish(); exit 0; }
}
print "Content-Type: text/plain\n\n"; binmode STDOUT; print "---"; exit 0;

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

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

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

【问题讨论】:

  • 当您从命令行以与 apache 服务器相同的用户运行“perl -c fcgitest.fcgi”时会发生什么?
  • 我没有 shell 访问权限...
  • 你是如何部署自己的 fastcgi 处理程序的?
  • 你为什么要把stdout放到binmode来发送text/plain?

标签: linux apache perl .htaccess


【解决方案1】:

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

例如,在 godaddy 共享主机上,.fcgi/.fpl 甚至我的 .pl 文件都将通过 FCGI 而不是普通的 CGI 运行。没有额外的努力。

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

另外,请尝试添加以下行:

print "Content-type:text/html\n\n";

使用 CGI::Carp 线后。

【讨论】:

  • 这个我也试过了,有点连线还是不行……如果权限不是755,error.log里面有内容。至于表头,我一开始就试过了,结果是一样的……所以连线……
  • 我认为你错过了这个,在第 2 行添加这个:使用 cPanelUserConfig;
  • 由于您使用的是共享主机,因此应该安装 cpanel 或类似的东西。哪一个?请检查一些控制面板...把所有非核心模块单独放置,需要添加类似上面的一行来调用它们。请检查,您的情况需要哪一个。
  • 是的,我正在使用 cPanel
  • 您可能想通过单击 cpanel 中的图标进入 Perl 模块并检查您的 Perl 模块的路径,并将其添加为脚本中的第 2 行。此外,请确保您在脚本中调用的模块已安装.. 检查该页面上的列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2015-11-10
  • 1970-01-01
相关资源
最近更新 更多