【发布时间】:2015-04-03 22:43:43
【问题描述】:
#!C:/perl/bin/perl.exe
use CGI;
my $q = CGI->new;
print $q->header('text/plain'),
"Hello ", $q->param('name');
#CONVERTED PSGI PAGE
#!C:/perl/bin/perl.exe
use CGI::PSGI;
my $app = sub {
my $env = shift;
my $q = CGI::PSGI->new($env);
return [
$q->psgi_header('text/plain'),
[ "Hello ", $q->param('name') ],
];
};
我在 apache 服务器中运行这个 cgi.pl http://localhost/cgi-bin/cgi.pl
但我无法在 apache 服务器中运行转换后的 psgi.pl 它的显示 请帮忙 内部服务器错误 服务器遇到内部错误或配置错误,无法完成您的请求。 请通过 admin@example.com 联系服务器管理员,告知他们此错误发生的时间,以及您在此错误之前执行的操作。服务器错误日志中可能会提供有关此错误的更多信息。
【问题讨论】:
-
CGI- 是一种使用 Apache 和/或其他网络服务器的规范。PSGI是另一个规范。您可以在 PSGI 服务器下运行CGI应用程序(通过使用CGI::PSGI),但您不能将 PSGI 应用程序作为纯 CGI 脚本运行。对于 PSGI 应用程序,您 不需要 apache。 (如果想使用 apache,您可以:1.)在反向代理后面运行您的 PSGI 应用程序,或 2.)使用 Plack::Handler::Apache2 或类似... -
“有关此错误的更多信息可能在服务器错误日志中可用” - 这听起来可能是一个线索。服务器错误日志说明了什么?
-
我现在可以使用 plack::runner 模块运行它