首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FastCGI和NGINX运行C代码

使用FastCGI和NGINX运行C代码
EN

Stack Overflow用户
提问于 2016-07-05 18:52:43
回答 1查看 2.5K关注 0票数 2

我正在尝试使用FastCGI和NGINX运行C代码。现在,在遵循这个网站中的所有步骤之后:http://chriswu.me/blog/writing-hello-world-in-fcgi-with-c-plus-plus/

我就在准备产卵的那一步。但是,我必须使用的系统是一个32位系统,其中不支持sudo apt安装之类的命令。我尝试从我的64位系统中复制派生-fcgi二进制文件,并尝试使用这样的方式:./spawn-fcgi -p 8000 -n hello_world命令,但是它给了我一个错误,它说它不能执行二进制文件(我假设它是因为当我尝试使用它时,它肯定在32位系统上)。事实上,当我执行file spawn-fcgi时,它告诉我它是一个64位的LSB可执行文件,当我在32位系统上运行它时,这就是为什么“无法执行二进制文件”错误存在。

我想知道的是,我是否可以在不调用spawn-fcgicgi-fcgi的情况下使用FASTCGI运行C脚本,或者如果存在,我可以使用32位的二进制文件。我试着在网上搜索FASTCGI的32位下载,但似乎fastcgi.com坏了,因为我无法访问该网站。

如果我遗漏了任何重要的信息,请告诉我,我很乐意提供。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-13 08:36:19

通过使用<fcgiapp.h>头提供的API,您可以指定套接字细节,这是通过外部方式生成的。

您可以获得这样的TCP套接字文件描述符:

int sockfd = FCGX_OpenSocket("127.0.0.1:9000", 100);

使用Unix套接字的...or:

int sockfd = FCGX_OpenSocket("/var/run/fcgi.sock", 100);

有了套接字,您就可以:

代码语言:javascript
复制
FCGX_Request req;
FCGX_InitRequest(&req, sockfd, 0);

while (FCGX_Accept_r(&req) >= 0) {
    FCGX_FPrintF(req.out, "Content-Type: text/html\n\n");
    FCGX_FPrintF(req.out, "hello world");
    FCGX_Finish_r(&req);
}

编译后,可以直接执行二进制文件,而无需使用spawn-fcgicgi-fcgi

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38210627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档