gpt4 book ai didi

perl - 如何将 Perl 代码从 mod_perl 移植到 FastCGI?

转载 作者:行者123 更新时间:2023-12-04 19:24:29 25 4
gpt4 key购买 nike

我们有一个支持 mod_perl 的现有 Perl 应用程序.但是,我们的新主机(Dreamhost)不支持 mod_perl,只支持 FastCGI;因此需要港口。

现有代码不使用任何 Apache 特定的东西,只是以 mod_perl 可接受的方式编写的普通 Perl 代码。 .

阅读文档和在线教程,似乎添加 FastCGI 支持涉及将现有代码包装在特定类型的循环中。以下是最常见的骨架代码:

A. 使用 FCGI

use FCGI;
while (FCGI::accept >= 0)
{
#Run existing code.
}

B. 使用 CGI::Fast
use CGI::Fast
while (my $cgi = CGI::Fast->new())
{
#Run existing code.
}

子问题:
  • 是方法一个 添加 FastCGI 支持的等效方法?
  • 如果 一个 是不同的,那么使用其中一种的优缺点是什么?
  • mod_perl 移植时,是否有任何最佳实践或陷阱?到 FastCGI?

  • 谢谢。

    最佳答案

    一般而言,FastCGI 应用程序与 CGI 非常相似。主要区别在于您可以利用您的流程能够持久这一事实。您可以利用它在应用程序中获得速度优势——例如,您可以在正在运行的进程中缓存数据库数据。本质上,您将应用程序更改为它自己的应用程序服务器,在 Web 服务器提供的 FastCGI 网关后面运行。

    这个想法是弄清楚如何使您的应用程序的处理方式适用于 FastCGI 网关。您是否使用任何 mod-perl 特定功能?如果是这样,请远离它。如果没有,那么就开始通过 FastCGI 进行对话。您的优势在于有可用于 Perl 的 FastCGI 接口(interface)。我假设您正在使用某种版本控制系统,所以只需创建一个用于移植到 FastCGI 的分支。然后,开始将 POST 和 PUT 视为从标准输入读取,将应用程序的响应视为写入标准输出。

    您可能还想通读一个为应用程序实现 FastCGI 接口(interface)的库。您可以在 fastcgi.com 上找到其中的一些。 .这可能有助于您了解与当前正在执行的操作相比,您的应用程序将以不同方式执行的操作。

    祝你好运!

    关于perl - 如何将 Perl 代码从 mod_perl 移植到 FastCGI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/664951/

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