【求救】安装fastcgi问题【已解决】

【求救】安装fastcgi问题【已解决】

我想使用fastcgi,平台是linux, Apache2.2.10
Apache安装目录为/usr/local/apache2

从fastcgi主页上下载了mod_fastcgi-2.4.6

按照mod_fastcgi里的INSTALL安装了mod_fastcgi,我该怎么配置httpd.conf呢?

我在httpd.conf里修改了:
LoadModule fastcgi_module modules/mod_fastcgi.so
AddHandler fastcgi-script .fcgi
ScriptAlias /fcgi-bin/ /usr/local/apache2/htdocs/fcgi-bin/   ------fcig-bin  我建在htdocs目录下的。
修改了:
<Directory "/usr/local/apache2/htdocs/fcgi-bin">
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>

重启apache,没有出现错误。

然后下了个用于c++的fastcgi的库:fcgi-2.4.0安装,然后拷贝目录下examples的echo可执行程序到/usr/local/apache2/htdocs/fcgi-bin目录下
网页上输入:http://**********/fcgi-bin/echo,网页得到一个:Internal Server Error


想问:
1. 我该如何配置啊
2. 配置好了如何知道可以运行fastcgi程序呢?

没有前途前途的东西,不要研究了


QUOTE:
原帖由 xinglp 于 2009-2-9 20:01 发表
没有前途前途的东西,不要研究了

呵呵, 因为有需要要用到这个,都弄了一天了,还没解决。。。
需要重新编译apche 编译加上-with-mpm=worker fcgid '--enable-ftp' '--enable-fastcgi' 或者  mod-cgid (http://blog.redzone.com.cn/read.php/60.htm)并且好像不能有'--with-openssl


vim /usr/local/apache/conf/httpd.conf
加入

LoadModule fcgid_module  modules/mod_fcgid.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule expires_module modules/mod_expires.so
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module        modules/libphp5.so

<IfModule mod_fcgid.c>
        AddHandler fcgid-script .php .py .pl .fcgi
        SocketPath /tmp/fcgid.sock
        IdleTimeout 600
        ProcessLifeTime 3600
        MaxProcessCount 8
        DefaultMinClassProcessCount 3
        DefaultMaxClassProcessCount 3
        IPCConnectTimeout 20
        IPCCommTimeout 48
</IfModule>

以前编译时候用的记录下来的。



QUOTE:
原帖由 charliesxia 于 2009-2-9 21:44 发表
需要重新编译apche 编译加上-with-mpm=worker fcgid '--enable-ftp' '--enable-fastcgi' 或者  mod-cgid (http://blog.redzone.com.cn/read.php/60.htm)并且好像不能有'--with-openssl


vim /usr/local/ap ...

额,这个用的是mod_fcgid,我用的是mod_fastcgi,安装上mod_fastcgi倒是可以编译fastcgi程序,在访问时出现Internet 500的错误。
不知道什么原因。

明天改用mod_fcgid试一试看。

安装成功的话 php 下 探针会显示有fcgi的变量。如果执行其他语言脚本的,俺就不太清楚了

在配置文件里乱搞了一下, 发现网页上输入fastcgi程序所在地方,可以调用了,我用的
是c++开发库中的examples中的echo.c例子,重复刷新几次网页,但是那个计数老是1,不会
自增,而进程ID在递增。
也就是说,只会调用一次,然后将结果返回给网页,然后退出,再调用的话再重新启动。。。没有循环等待我的网页请求,这是为什么啊 。。。


以下是刷新几次网页后显示的结果:
第一次刷新:
Request number 1, Process ID: 4209
No data from standard input.

第二次刷新:
Request number 1, Process ID: 4210
No data from standard input.

第三次刷新:
Request number 1, Process ID: 4211
No data from standard input.

。。。。



QUOTE:
原帖由 pengjiajun 于 2009-2-10 11:31 发表
以下是刷新几次网页后显示的结果:
第一次刷新:
Request number 1, Process ID: 4209
No data from standard input.

第二次刷新:
Request number 1, Process ID: 4210
No data from standard input.

第三次刷新:
Request number 1, Process ID: 4211
No data from standard input.

。。。。

看样子这个FastCGI进程没有能够常驻,当成普通CGI进程了, 应该是配置问题(配置文件或着编译方式),
好好看看FastCGI的手册,
很多年前FastCGI只支持Apache1.3 2.0, 你现在用的是2.2版本么? Apache是prefork还是worker,还是event...

仅供参考
嗯,应该是把它当成了普通的cgi程序了,主要是我在apache的配置文件中设置了:
AddHandler fcgid-script .fcgi
但我调用的确是没有 .fcgi后缀的

后来将用fastcgi编译出来的程序加上 .fcgi后缀,调用就正常了。。。



非常感谢呵。