我正在尝试快速开发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,低于C/C++ FastCGI on lightty named socket
)完美无瑕。但是,我完全不清楚为什么默认提供的示例不起作用。
问题:
答案 0 :(得分:1)
我测试了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.1 ubuntu4)它运行正常:
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>
数目:
答案 1 :(得分:1)
我不知道你的问题与我的问题是否有相同的起源,但至少它有相同的症状。
tiny-fcgi示例有不同版本。我首先尝试了here给出的那个(例1)。此操作因内部服务器错误而失败。但是,给出here(基本相同)的示例有效。小而重要的区别在于工作代码使用
getenv("SERVER_NAME")
而不是
getenv("SERVER_HOSTNAME")
答案 2 :(得分:0)
对我来说并不完全相同,但如果我避免使用getenv
示例运行没有错误,则必须发现getenv
导致错误的原因