gpt4 book ai didi

linux - FastCGI with perl - 在共享 Linux 虚拟主机上

转载 作者:太空宇宙 更新时间:2023-11-04 03:53:49 25 4
gpt4 key购买 nike

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

我正在使用安装了 mod_fcgid 的 Apache 2.2 共享托管。我的 .htaccess 文件添加了以下行:

AddHandler fcgid-script .fcgi

我的名为fcgitest.fcgi的perl测试脚本如下:

#!/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 配置良好...

最佳答案

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

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

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

此外,尝试添加以下行:

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

使用 CGI::Carp 线后。

关于linux - FastCGI with perl - 在共享 Linux 虚拟主机上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25440199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com