我正试图开始使用fastcgi开发,因此我下载了libfcgi的参考实现,并尝试使用lighttpd运行一个测试程序。因为fcgi_stdio允许cgi向后兼容,所以我决定从这个开始。
但是我无法让examples/tiny-fcgi.clighttpd一起工作,它产生了一个internal server errror 500,相同的配置允许运行lighttpd示例程序(http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModFastCGI,belowC/C++ FastCGI on lightty named socket)没有缺陷。但是,我完全不清楚为什么默认提供的示例不起作用。
问题:
引用实现中的examples/tiny fcgi.c示例有什么问题导致lighttpd返回错误500?
哪种fastcgi实现更适合于c++开发(fcgi_stdio,fcgiapp,Other)?(fcgi包中有一些流的内容,但是我没有找到好的/任何文档)

最佳答案

我已经测试了unmodified example(Ubuntu/13.10/amd-64,Apache/2.4.6,libapache2 mod fastcgi/2.4.7~0910052141-1.1,libfcgi dev/2.4.0-8.1ubuntu 4),它运行正常:

manuelz@garibaldi:~$ curl habrich/tiny-fcgi
<title>FastCGI Hello! (C, fcgi_stdio library)</title>
<h1>FastCGI Hello! (C, fcgi_stdio library)</h1>
Request number 2 running on host <i>habrich</i>

答案:
不知道你的配置很难说,但这里有一个暗中拍摄:getenv将返回NULL如果SERVER_NAMEundefined
fcgiapp是基本实现:我将使用该实现进行新的开发。fcgi_stdio是与CGI兼容的包装器:用于迁移遗留CGI项目。Quote
fcgi_stdio是在fcgiapp之上实现的一个薄层
您可以在fcgiapp.h标题中找到fcgiapp的适当文档。

关于c++ - fcgi_stdio和fcgiapp有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18739649/

10-12 21:33