我正在使用fastcgi C/C++ toolkit来开发测试fastcgi应用程序。 我构建了(现在正在测试)工具包提供的this example。
我已经加载了Apache mod_fcgid并成功重启了apache2守护进程。但是,当我尝试访问fastcgi资源时,它返回一个空白页面。
注意: 我对示例代码进行了以下更改(因为它无法使用默认套接字fd值0):
int sock_fd = FCGX_OpenSocket(":5000", 1);
FCGX_InitRequest(&request, sock_fd, 0);
我的/etc/apache2/mods-enabled/fcgid.conf文件如下所示:
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
SocketPath /var/lib/apache2/fcgid/sock
IPCConnectTimeout 10
IPCCommTimeout 20
OutputBufferSize 0
MaxRequestsPerProcess 500
</IfModule>
我的/etc/apache2/mods-enabled/fcgid.load文件如下所示:
LoadModule fcgid_module /my/path/here/libs/mod_fcgid.so
然后我使用以下网址在浏览器中访问了“资源”:
我做错了什么? (假设有人实际设法得到上面引用的例子,去工作)
我正在Linux Ubuntu 10.x上开发/测试
答案 0 :(得分:0)
我暂时不使用apache,但我认为你的网址很糟糕 我假设您的apache在端口80上运行,而您的echo.fcgi在apache文件夹的根目录
有关信息,我使用nginx作为服务fcgi应用程序
http://localhost/echo.fcgi
答案 1 :(得分:0)
运行apachctl -D以验证您的mod_fcgid是否正在运行。我相信当你的进程崩溃时不会出现输出(即白页)。
您需要使用debugging(-O0 -ggdb)编译程序,重新部署并重新启动Apache。
将Apache配置更改为仅生成一个进程。这将允许您将gdb附加到FCGI应用程序并进行调试。
如果您需要进一步的帮助,请与我们联系。