我已经为Windows安装了Lighthttpd,我在c ++中创建了一个使用fastcgi库的简单程序。我会在这里发布代码......
#include "fcgi_stdio.h"
#include <stdlib.h>
int count;
void initialize(void)
{
count=0;
}
void main(void)
{
initialize();
while (FCGI_Accept() >= 0) {
printf("Content-type: text/html\r\n"
"\r\n"
"<title>FastCGI Hello! (C, fcgi_stdio library)</title>"
"<h1>FastCGI Hello! (C, fcgi_stdio library)</h1>"
"Request number %d running on host <i>%s</i>\n",
++count, getenv("SERVER_HOSTNAME"));
}
}
我使用lightttpd-inc.conf中的以下配置在lighthttpd中生成了fastcgi应用程序
fastcgi.server = ( ".exe" =>
( "" =>
(
"bin-path" => "D:\tinycgi.exe",
"port" => 8080,
"min-procs" => 1,
"max-procs" => 1
)
)
)
在使用浏览器发送请求时,服务器在控制台中使用此消息进行响应
2009-02-18 16:08:34: (mod_fastcgi.c.2494) unexpected end-of-file (perhaps the fa
stcgi process died): pid: 0 socket: tcp:localhost:8080
2009-02-18 16:08:34: (mod_fastcgi.c.3325) response not received, request sent: 1
024 on socket: tcp:localhost:8080 for /new/tinycgi.exe , closing connection
我认为fastcgi应用程序没有正确生成。
谢谢你, 瓦伦
答案 0 :(得分:1)
首先,main应该返回一个int(不是void)。 问题很可能是你没有调用FCGX_Init()并且没有初始化请求(使用FCGX_InitRequest())。
如果要检查应用程序是否正确生成,则应写入日志文件,如果lighttpd未启动应用程序,则不会创建日志文件。