加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – Plack :: App :: CGIBin通过Apache和mod_fastcgi – 找

发布时间:2020-12-15 21:25:38 所属栏目:大数据 来源:网络整理
导读:我试图获得Plack :: App :: CGIBin工作使用Apache2和FastCGI在FreeBSD 8.2。最终的目标是能够使用这个设置通过Plack服务一大堆遗留的CGI脚本,以利用其中间件功能,但我还没有能够得到一个简单的例子工作。 我遵循了关于Plack::Handler::FCGI和Plack::App::C
我试图获得Plack :: App :: CGIBin工作使用Apache2和FastCGI在FreeBSD 8.2。最终的目标是能够使用这个设置通过Plack服务一大堆遗留的CGI脚本,以利用其中间件功能,但我还没有能够得到一个简单的例子工作。

我遵循了关于Plack::Handler::FCGI和Plack::App::CGIBin本身的CPAN文档,但我不确定我是否缺少某些东西或做错误,这些文档没有涵盖。

这是我添加的Apache配置:

# Set up external server
FastCgiExternalServer /tmp/placktest.fcgi -socket /tmp/fcgi.socket

# URL to be handled by FastCGI
Alias /plack/ /tmp/placktest.fcgi/

运行外部服务器的命令:

plackup -s FCGI --listen /tmp/fcgi.socket /data/www/psgi/app.psgi

服务器成功启动,返回以下内容:

FastCGI: manager (pid <pid>): initialized
FastCGI: manager (pid <pid>): server (pid <pid>) started
FastCGI: server (pid <pid>): initialized

这是app.psgi:

#!/usr/bin/env plackup -s FCGI

use Plack::App::CGIBin;
use Plack::Builder;

my $app = Plack::App::CGIBin->new(
    root => '/data/www/plack',)->to_app;

builder {
    mount "/plack" => $app;
};

然后我有一个简单的CGI脚本在/data/www/plack/test.cgi(这个文件在CGI.pm下运行良好)。

我所期望的是,对http://< domain> /plack/test.cgi/(包括尾部斜杠)的请求将返回测试脚本,但我总是在Apache错误日志中得到以下404错误,我认为是从FastCGI服务器回来:

FastCGI: server "/tmp/placktest.fcgi" stderr: <IP address/date>; "GET /plack/test.cgi HTTP/1.1" 404 9 "-" <User agent string>;

我有FastCGI自己工作,使用mod_fastcgi和一个简单的示例脚本在SetHandler fastcgi-script应用的目录,所以至少工作:-)。

有没有人有Plack :: App :: CGIBin在类似的情况下工作?我非常感谢任何洞察力!

谢谢

解决方法

我想你需要改变
builder {
    mount "/plack" => $app;
};

builder {
    mount "/" => $app;
};

因为你的别名是删除/ plack /

或只是改变

# URL to be handled by FastCGI
Alias /plack/ /tmp/placktest.fcgi/

# URL to be handled by FastCGI
Alias /plack/ /tmp/placktest.fcgi/plack/

毕竟它似乎不是一个Perl问题,而是一个系统管理员的一个,关于Apache配置。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读