我正试图开始使用fastcgi开发,因此我下载了libfcgi
的参考实现,并尝试使用lighttpd
运行一个测试程序。因为fcgi_stdio
允许cgi
向后兼容,所以我决定从这个开始。
但是我无法让examples/tiny-fcgi.c
与lighttpd
一起工作,它产生了一个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_NAME
是undefined。fcgiapp
是基本实现:我将使用该实现进行新的开发。fcgi_stdio
是与CGI兼容的包装器:用于迁移遗留CGI项目。Quote:fcgi_stdio是在fcgiapp之上实现的一个薄层
您可以在fcgiapp.h标题中找到
fcgiapp
的适当文档。关于c++ - fcgi_stdio和fcgiapp有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18739649/