[PATCH]An Apache2 fastcgi module

php.internals

潘庆峰

22 years ago
Hi, all I just finished an apache2 fastcgi module: mod_fcgid, can this module be a part of PHP? You can find the goals for the implementation in http://fastcgi.coremail.cn/index.htm I have to highlight a different from mod_fastcgi: Every fastcgi process has unique UNIX domain socket path, so the following problem will not happen anymore(copy from README.Zeus): "While we can run FastCGI's locally, there are known problems with some OS's (specifically, the communication between web server and FastCGI happens over a unix domain socket, and some OS's have trouble sustaining high connection rates over these sockets)", Because fastcgi application is no more running in "-b port" mode while working with mod_fcgid, so I patch sapi/cgi/cgi_main.c, check an enviroment variable "PHP_FCGI_NOFORK ", if it is set, then the fork() is skipped. I tested this patch with my module, it work fine. It's a very simple modification, I just modified one line of the source code. You can download the apache module source code and documentation from the link i mention above. ( and a simple configuation demo to show how to make fastcgi-php application work with mod_fcgid) I would like to put this module into PHP project, can I? And if I can, how to do it? Thank for any comment and advice. Qingfeng Pan

潘庆峰

22 years ago
I am the guy who post this, but it seems missing my attachment? I post it here again... Index: cgi_main.c =================================================================== RCS file: /repository/php-src/sapi/cgi/cgi_main.c,v retrieving revision 1.190.2.60 diff -u -r1.190.2.60 cgi_main.c --- cgi_main.c 31 Mar 2004 17:01:45 -0000 1.190.2.60 +++ cgi_main.c 21 May 2004 17:46:44 -0000 @@ -1197,7 +1197,7 @@ } } - if( children ) { + if( !getenv("PHP_FCGI_NOFORK") && children ) { int running = 0; pid_t pid; "]ËáîW" <pqf@tebie.com> дÈëÓʼþ news:HGEDKNHMMKLCDFDMLFAPCEAKCAAA.pqf@tebie.com...
> Hi, all > I just finished an apache2 fastcgi module: mod_fcgid, can this module be
a part of PHP?
> You can find the goals for the implementation in
http://fastcgi.coremail.cn/index.htm
> > I have to highlight a different from mod_fastcgi: Every fastcgi process
has unique UNIX domain socket path, so the following problem will not happen anymore(copy from README.Zeus): "While we can run FastCGI's locally, there are known problems with some OS's (specifically, the communication between web server and FastCGI happens over a unix domain socket, and some OS's have trouble sustaining high connection rates over these sockets)",
> > Because fastcgi application is no more running in "-b port" mode while
working with mod_fcgid, so I patch sapi/cgi/cgi_main.c, check an enviroment variable "PHP_FCGI_NOFORK ", if it is set, then the fork() is skipped. I tested this patch with my module, it work fine. It's a very simple modification, I just modified one line of the source code.
> > You can download the apache module source code and documentation from the
link i mention above. ( and a simple configuation demo to show how to make fastcgi-php application work with mod_fcgid)
> > I would like to put this module into PHP project, can I? And if I can,
how to do it?