【问题标题】:FastCGI for C++用于 C++ 的 FastCGI
【发布时间】:2022-01-23 18:27:33
【问题描述】:

我只找到了两个用于 C++ 的 FastCGI 库。有"official" onefastcgi++。哪一个比另一个好?还有其他的吗?

【问题讨论】:

标签: c++ fastcgi


【解决方案1】:

你可能想要的隐藏在 Cgicc 包的contrib 目录中。

fcgi-test.cpp 是如何将 cgicc 与 FastCGI 一起使用的示例。

安装的fcgi-test.cpp 的路径应该是 /usr/share/doc/libcgicc-doc/examples/contrib/fcgi-test.cpp

【讨论】:

    【解决方案2】:

    因为 fastcgi++ 仍然被列为“开发状态:4- Beta”,所以我建议去官方的。它已经存在了很长时间,并且具有多种语言的绑定。两者之间的许可证似乎没有太大区别。在您的代码中进行一些测量,如果性能是一个问题,然后花一些时间尝试替代方案。

    【讨论】:

    • fastcgi++ 自 2018 年 4 月 5 日起处于“开发状态:5 - 生产/稳定”状态。官方 FastCGI 现已不受支持,网站已关闭。
    【解决方案3】:

    官方库相当低级,因此只能作为高级 CGI 库(如 cgicc)的中间体。

    另一方面,Fastcgi++ 在处理 FastCGI 时允许使用 C++ 习语。 v1 中的不完整性促使我将其 fork 到 mosh-fcgi 中。

    优点: 我的 fork 符合标准的每一点(尤其是 ROLE_FILTER) 一切都被广泛模板化,因此对 std::basic_strings 使用任意 T 更容易。 缺点: 我的修改处于 alpha 模式。

    无论如何,请从https://github.com/moshbear/mosh-fcgi 下载最新的 zip。

    【讨论】:

      【解决方案4】:

      另见 Cgicc 库:

      http://www.gnu.org/software/cgicc/

      该库似乎已经成熟(当前为 3.x 版)。根据文档,它可以通过将自定义阅读器 (reader_function_t) 传递给 Cgicc 类的构造函数来与 FastCGI 一起使用。

      【讨论】:

        【解决方案5】:

        有一个用于创建 FastCGI 守护进程的漂亮库:https://github.com/golubtsov/Fastcgi-Daemon

        【讨论】:

          【解决方案6】:

          C 版本的 FastCGI 做的很少,用 C++ 开发也不是什么大问题,因为它几乎不会干扰你自己的代码。它很可能只是一个循环和一个环境变量。

          所以我的建议是坚持使用官方版本。

          请注意一件事:它通过重新定义printf 来工作!因此,如果您使用cout,它将无法正常工作。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-04-21
            • 2014-05-26
            • 1970-01-01
            • 2017-06-14
            • 2012-02-09
            • 2012-02-21
            相关资源
            最近更新 更多